PHP如何获取真实IP地址

PHP如何获取真实IP地址,第1张

//最简单获取ip地址代码一句实例

$reIP=$_SERVER["REMOTE_ADDR"]

echo $reIP

//

//php教程获取ip的算法

if(getenv(HTTP_CLIENT_IP)) {

$onlineip = getenv(HTTP_CLIENT_IP)

} elseif(getenv(HTTP_X_FORWARDED_FOR)) {

$onlineip = getenv(HTTP_X_FORWARDED_FOR)

} elseif(getenv(REMOTE_ADDR)) {

$onlineip = getenv(REMOTE_ADDR)

} else {

$onlineip = $HTTP_SERVER_VARS[REMOTE_ADDR]

}

echo $onlineip

//可以分出内网与外网站ip地址获取程序

function getip_out(){

$ip=false

if(!empty($_SERVER["HTTP_CLIENT_IP"])){

$ip = $_SERVER["HTTP_CLIENT_IP"]

}

if (!empty($_SERVER[HTTP_X_FORWARDED_FOR])) {

$ips教程 = explode (", ", $_SERVER[HTTP_X_FORWARDED_FOR])

if ($ip) { array_unshift($ips, $ip)$ip = FALSE}

for ($i = 0$i <count($ips)$i++) {

if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {

$ip = $ips[$i]

break

}

}

}

return ($ip ? $ip : $_SERVER[REMOTE_ADDR])

}

echo getip_out()

//php获取ip的算法,用了?号表达式来处理

$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]

$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]

希望会对你有所帮助

理论上不可能获得真实的客户IP地址,只能获得最后一次路由器、或者代理服务器的IP地址。典型的情况是对方也在局域网、或者防火墙的后面,我们是不可能获得他真实的IP地址的,其实获取来也没有,一般是192.168.1.2这样的私有地址,甚至很可能所有的客户机都是这个网段。

<?php

echo

"当前脚本服务器的主机名:".gethostbyaddr($_SERVER['REMOTE_ADDR'])."<br

/><hr

/>"

echo

"获得当前运行PHP脚本(页面)所在的服务器的

IP

地址:".$_SERVER['SERVER_ADDR']."<br

/><hr

/>"

echo

"获得当前运行PHP脚本(页面)所在的服务器的

主机名:".$_SERVER['SERVER_NAME']

echo

'<hr>'

echo

'客户端ip'.

$_SERVER['REMOTE_ADDR']

echo

'<br>'

echo

'客户端ip'.getenv('REMOTE_ADDR')

echo

"<br>"

echo

'服务器主机ip'.gethostbyname("www.qq.com")

?>

运行出来:

当前脚本服务器的主机名:XYL-PC

获得当前运行PHP脚本(页面)所在的服务器的

IP

地址:127.0.0.1

获得当前运行PHP脚本(页面)所在的服务器的

主机名:localhost

客户端ip127.0.0.1

客户端ip127.0.0.1

服务器主机ip61.135.169.105


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/380752.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存