为什么获取不到本机IP

fkueyga6 2015-08-24 12:17:24
$bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP
echo 'IP:'.$bIp;

上面的代码为什么在本地测试可以获取到,而上传到服务器就获取不到局域网IP?
...全文
309 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsie 2015-08-27
  • 打赏
  • 举报
回复
引用 15 楼 fkueyga6 的回复:
[quote=引用 13 楼 zy205817 的回复:] [quote=引用 10 楼 fkueyga6 的回复:] 我现在是做一个签到系统,用户登陆签到一次后就不能再签到,这个我用用户ID就能判断,但现在有我想防止这种情况: 比如,用户1签到后,他只需要登陆用户2的帐号,就可以帮用户2签到,我现在就想防止这种情况的发生。应该怎么办?
这个账户之间的切换,去做处理的话,不好做的。[/quote] 要是能获取到手机的IMEI或手机号码就好了,我在网 搜了说是好像不可以[/quote] 物理设备的信息.在程序所在的当前设备容易获取.如你所说. 远程的先要有客户端的JS或者插件程序监测去获取么
fkueyga6 2015-08-26
  • 打赏
  • 举报
回复
引用 13 楼 zy205817 的回复:
[quote=引用 10 楼 fkueyga6 的回复:] 我现在是做一个签到系统,用户登陆签到一次后就不能再签到,这个我用用户ID就能判断,但现在有我想防止这种情况: 比如,用户1签到后,他只需要登陆用户2的帐号,就可以帮用户2签到,我现在就想防止这种情况的发生。应该怎么办?
这个账户之间的切换,去做处理的话,不好做的。[/quote] 要是能获取到手机的IMEI或手机号码就好了,我在网 搜了说是好像不可以
fkueyga6 2015-08-26
  • 打赏
  • 举报
回复
引用 12 楼 misakaqunianxiatian 的回复:
[quote=引用 10 楼 fkueyga6 的回复:] 我现在是做一个签到系统,用户登陆签到一次后就不能再签到,这个我用用户ID就能判断,但现在有我想防止这种情况: 比如,用户1签到后,他只需要登陆用户2的帐号,就可以帮用户2签到,我现在就想防止这种情况的发生。应该怎么办?
把用户第一次投票的时候的IP地址获取,储存在session里,第二次切换了账号来登录的时候,判断该用户的IP地址是否在session里已存在,如果已存在就返回false。如果第二天可以重新投票,可以重置session里的IP地址[/quote] 用IP有一个很大的问题,就是我们都在一个外网IP上
码无边 2015-08-26
  • 打赏
  • 举报
回复
引用 10 楼 fkueyga6 的回复:
我现在是做一个签到系统,用户登陆签到一次后就不能再签到,这个我用用户ID就能判断,但现在有我想防止这种情况: 比如,用户1签到后,他只需要登陆用户2的帐号,就可以帮用户2签到,我现在就想防止这种情况的发生。应该怎么办?
这个账户之间的切换,去做处理的话,不好做的。
misaka去年夏天 2015-08-26
  • 打赏
  • 举报
回复
引用 10 楼 fkueyga6 的回复:
我现在是做一个签到系统,用户登陆签到一次后就不能再签到,这个我用用户ID就能判断,但现在有我想防止这种情况: 比如,用户1签到后,他只需要登陆用户2的帐号,就可以帮用户2签到,我现在就想防止这种情况的发生。应该怎么办?
把用户第一次投票的时候的IP地址获取,储存在session里,第二次切换了账号来登录的时候,判断该用户的IP地址是否在session里已存在,如果已存在就返回false。如果第二天可以重新投票,可以重置session里的IP地址
xuzuning 2015-08-26
  • 打赏
  • 举报
回复
还是判断 用户ID,只要 用户ID 非空就不进入登录
  • 打赏
  • 举报
回复
试试这个,我一直在用,内外网都能取到
<?php
function get_real_ip(){
	$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 get_real_ip();
?>
fkueyga6 2015-08-25
  • 打赏
  • 举报
回复
我现在是做一个签到系统,用户登陆签到一次后就不能再签到,这个我用用户ID就能判断,但现在有我想防止这种情况: 比如,用户1签到后,他只需要登陆用户2的帐号,就可以帮用户2签到,我现在就想防止这种情况的发生。应该怎么办?
xuzuning 2015-08-25
  • 打赏
  • 举报
回复
cookie 或 session
xuzuning 2015-08-25
  • 打赏
  • 举报
回复
cookie 或 session
fkueyga6 2015-08-25
  • 打赏
  • 举报
回复
哦,那比如有些投票系统不用登陆的,是通过什么来判断已经投过票了?
xuzuning 2015-08-25
  • 打赏
  • 举报
回复
局域网的ip在私有ip网段,不会暴露于公网中
fkueyga6 2015-08-25
  • 打赏
  • 举报
回复
也不一定是192,有可能是其它的,就是想要客户端的局域网的IP
fkueyga6 2015-08-25
  • 打赏
  • 举报
回复
我是想要别人访问我的客户端的局域网IP(192开头的那个)
fkueyga6 2015-08-24
  • 打赏
  • 举报
回复
应该怎样获取到局域网IP??
xuzuning 2015-08-24
  • 打赏
  • 举报
回复
请注意公网和局域网的区别

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧