手机版 收藏 导航

PHP中使用fsockopen()函数获取域名IP的方法是什么

原创   www.link114.cn   2025-06-15 17:08:10

PHP中使用fsockopen()函数获取域名IP的方法是什么

在PHP中,可以使用fsockopen()函数来获取域名的IP地址。该函数可以创建一个客户端TCP/UDP套接字连接。通过向目标主机发送一个HTTP请求,获取响应头部中的"X-Forwarded-For"或"Client-IP"字段来获取IP地址。

以下是一个使用fsockopen()函数获取域名IP地址的示例代码:


$host = 'www.example.com';
$port = 80;
$timeout = 30;

$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) {
    echo "Error: $errno - $errstr
"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $response = ''; while (!feof($fp)) { $response .= fgets($fp, 1024); } fclose($fp); $lines = explode("\r\n", $response); foreach ($lines as $line) { if (stripos($line, 'X-Forwarded-For') !== false) { $ip = trim(str_replace('X-Forwarded-For:', '', $line)); echo "IP Address: $ip"; break; } elseif (stripos($line, 'Client-IP') !== false) { $ip = trim(str_replace('Client-IP:', '', $line)); echo "IP Address: $ip"; break; } } }

在这个示例中,我们使用fsockopen()函数连接到目标主机,发送一个HTTP GET请求,解析响应头部中的"X-Forwarded-For"或"Client-IP"字段来获取IP地址。

需要注意的是,这种方法可能并不总是可靠的,因为有些网站可能会屏蔽这种获取IP地址的方式。另一种获取IP地址的方法是使用gethostbyname()函数,但这种方法也可能存在一些问题,比如在某些情况下可能会返回一个虚假的IP地址。