精确的IP地址了主机URL
我有一台主机的= http://172.19.242.32:1234/
精确的IP地址了主机URL
我的目标是抢IP只= 172.19.242.32
我试图
$ip = trim($host,'http://');
$ip = str_replace("/", "",$ip);
$ip = explode(":",$ip);
$ip = $ip[0];
我得到了我的IP为预计,但我不能这样做了,因为它会搞乱IPv6格式。
什么是替代方法?任何建议?
使用parse_url():您可以省略PHP_URL_HOST
以返回所有组件的数组。
<?php
$host = 'http://172.19.242.32:1234/';
echo parse_url($host, PHP_URL_HOST);
返回
172.19.242.32
这将与IPv6协同工作吗?防爆。 'host = http:// [fd8c :: 11]:1234 /' – ihue
它返回''[fd8c :: 11]''。 – alistaircol
太棒了,那么这是正确的答案。我会尽快接受。 – ihue
正确的方法是$_SERVER['SERVER_ADDR']
我想?它应该只返回IP
这将返回服务器的IP地址,当前脚本正在执行。 OP要求从某个字符串获取IP地址。 –
他说他有一个主持人,我把它解释为他自己的主人,脚本在哪里运行。 – junkfoodjunkie
$url="http://172.19.242.32:1234/";
$regexIpAddress = '/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:\/\d{2})?/';
preg_match_all($regexIpAddress, $url, $ip_match);
var_dump($ip_match[0]);
这reg表达式匹配功能将来自任何字符串中提取的IP地址。
太复杂了,\t 请问这个工作与IPv6?防爆。 host = http:// [fd8c :: 11]:1234 /? – ihue
这是IPv4正则表达式匹配。 –
['parse_url()'](http://php.net/manual/en/function.parse-url.php) –
或者正则表达式'/ [\ d。] +(?=:)/' – Mohammad
[在PHP中解析域名的URL]可能的重复(https://*.com/questions/276516/parsing-domain-from-url-in-php) – mickmackusa