从主机 URL 中精确获取 IP 地址
Exact an IP address out of a Host URL
我有主机=http://172.19.242.32:1234/
我的目标是只抢IP=172.19.242.32
我试过了
$ip = trim($host,'http://');
$ip = str_replace("/", "",$ip);
$ip = explode(":",$ip);
$ip = $ip[0];
我按预期获得了 IP,但我不能再这样做了,因为它会弄乱 IPv6 格式。
替代方法是什么?有什么建议吗?
我认为正确的方法是 $_SERVER['SERVER_ADDR']
?它应该 return 只是 IP
使用parse_url():可以省略PHP_URL_HOST
到return一个数组的所有分量。
<?php
$host = 'http://172.19.242.32:1234/';
echo parse_url($host, PHP_URL_HOST);
returns
172.19.242.32
$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]);
这个正则表达式匹配函数将从任何字符串中提取IP地址。
我有主机=http://172.19.242.32:1234/
我的目标是只抢IP=172.19.242.32
我试过了
$ip = trim($host,'http://');
$ip = str_replace("/", "",$ip);
$ip = explode(":",$ip);
$ip = $ip[0];
我按预期获得了 IP,但我不能再这样做了,因为它会弄乱 IPv6 格式。
替代方法是什么?有什么建议吗?
我认为正确的方法是 $_SERVER['SERVER_ADDR']
?它应该 return 只是 IP
使用parse_url():可以省略PHP_URL_HOST
到return一个数组的所有分量。
<?php
$host = 'http://172.19.242.32:1234/';
echo parse_url($host, PHP_URL_HOST);
returns
172.19.242.32
$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]);
这个正则表达式匹配函数将从任何字符串中提取IP地址。