[英]IPv4 address with PHP
我想獲取 IPv4 地址,而不是本地主機地址 (127.0.0.1)。 我只得到 ::1。
我用$ip = getenv ("REMOTE_ADDR");
試過了$ip = getenv ("REMOTE_ADDR");
和
$ip = getenv ('SERVER_ADDR');
$ip = $_SERVER['REMOTE_ADDR'];
最后我在同一天得到了答案。 你可以在下面看到它:
function getIP() {
$ip = $_SERVER['SERVER_ADDR'];
if (PHP_OS == 'WINNT'){
$ip = getHostByName(getHostName());
}
if (PHP_OS == 'Linux'){
$command="/sbin/ifconfig";
exec($command, $output);
// var_dump($output);
$pattern = '/inet addr:?([^ ]+)/';
$ip = array();
foreach ($output as $key => $subject) {
$result = preg_match_all($pattern, $subject, $subpattern);
if ($result == 1) {
if ($subpattern[1][0] != "127.0.0.1")
$ip = $subpattern[1][0];
}
//var_dump($subpattern);
}
}
return $ip;
}
您可以使用gethostbyname()
獲得 IPv4 地址,例如使用gethostbyname($_SERVER['HTTP_HOST'])
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.