PHP,如果IP或域检测功能

chi*_*ers 7 php

有没有办法使用php检测字符串是否是Ip或域,如下所示.

$string = "http://192.168.0.0";
$string = "http://example.com";
Run Code Online (Sandbox Code Playgroud)

因此,如果字符串是IP,那么如果脚本/函数将其检测为域,它将执行某些操作,它将执行其他操作.

谢谢

dfs*_*fsq 12

您可以像这样测试它:

$isIP = (bool)ip2long($_SERVER['HTTP_HOST']);
Run Code Online (Sandbox Code Playgroud)

ip2long函数将返回的false是host不是域名之类的有效IP地址.使用ip2long功能的好处是它还验证提供的IP地址.所以例如地址是4.4.4.756会给你假的.

因此,要测试给定的字符串,您可以:

$string = "http://192.168.0.0";
$parts = parse_url($string);
$isIP = (bool)ip2long($parts['host']);
Run Code Online (Sandbox Code Playgroud)