
// 通过$_SERVER变量
echo $_SERVER['SERVER_ADDR'];
// 通过执行 *** 作符,等同于在命令行下执行该命令,要获取ip的根据返回内容截取
$output = `ipconfig`;
echo '<pre>'$output'</pre>';
// 通过system函数,功能与执行 *** 作符一样
echo '<pre>';
$last_line = system('ipconfig', $retval);
echo '
</pre>
<hr />Last line of the output: ' $last_line '
<hr />Return value: ' $retval;
ip地址分 IPv4和IPV6两个版本。
127001或者19216801之类的,属于IPV4的格式
127001转换为IPv6就是 ::1
IPv6具体的格式写法,你搜索一下了解一下。
另外 ,服务端获取ip地址,是相对的。比如你在局域网内建一个服务器,在程序里获取的ip地址,就是客户端在局域网的ip ,一般是类似 1921680101 之类的,大公司的话可能 10xxx
局域网的ip地址,可以直接在网络适配器上看到
而在inter网,也就是大网络上,服务端获取的ip地址,是你的连网设备获取到的公网ip ,一般一个局域网内的主机,相对于因特网上的服务器,显示的都是公网地址。
公网ip没有在本机电脑上直接显示。会显示在路由或者连网设备上。也可以通过百度搜索 ip地址,会显示你的公网ip
所以,假设一个局域网内,有两台电脑同时访问一个网上的服务器,服务器是没办法给两台电脑区分开ip地址的,显示的是一样的。只是可能得到的设备信息不一样(如:浏览器的useragent)
<php
$ip=$_SERVER["REMOTE_ADDR"];
$q=$mysqli->("select from account where userip='$ip'");
if($q->rows_num>0){echo 'IP已存在';}
else{
$q2=$mysqli->("insert into account (userip) values ('$ip')");
}
>
你看看吧,再有问题请HI我。
你的函数写错了,$ip=$_SERVER["REMOTE_ADDR"];
这个跟你的路由设置和访问方式有关。
假设你的服务端在1010501,公网IP都是8888。
假设你的客户端在 101050100-199,出口公网IP是4444
如果你的客户端以公网的形式访问,如>
以上就是关于php怎样获取本机的ipv4地址全部的内容,包括:php怎样获取本机的ipv4地址、php 怎么获取内网IP、PHP获取ip地址并比较等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)