从主机URL中确定IP地址

时间:2017-04-07 15:50:16

标签: php substring ip-address host

我有一个主持人= 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格式。

有什么替代方法?有什么建议吗?

3 个答案:

答案 0 :(得分:4)

使用parse_url():您可以省略PHP_URL_HOST以返回所有组件的数组。

<?php
$host = 'http://172.19.242.32:1234/';
echo parse_url($host, PHP_URL_HOST);

返回

172.19.242.32

https://eval.in/770497

答案 1 :(得分:1)

$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地址。

答案 2 :(得分:-2)

我认为正确的方式是{{1}}?它应该只返回IP

相关问题