首 页 行业资讯 新车 试驾评测 养车用车 车型库

php 怎么获取内网IP?

发布网友 发布时间:2022-04-23 08:25

我来回答

5个回答

热心网友 时间:2022-04-06 09:20

ip地址分 IPv4和IPV6两个版本。

127.0.0.1或者192.168.0.1之类的,属于IPV4的格式

127.0.0.1转换为IPv6就是 ::1

IPv6具体的格式写法,你搜索一下了解一下。

另外 ,服务端获取ip地址,是相对的。比如你在局域网内建一个服务器,在程序里获取的ip地址,就是客户端在局域网的ip  ,一般是类似 192.168.0.101 之类的,大公司的话可能  10.x.x.x 

局域网的ip地址,可以直接在网络适配器上看到

而在inter网,也就是大网络上,服务端获取的ip地址,是你的连网设备获取到的公网ip ,一般一个局域网内的主机,相对于因特网上的服务器,显示的都是公网地址。

公网ip没有在本机电脑上直接显示。会显示在路由或者连网设备上。也可以通过百度搜索 ip地址,会显示你的公网ip

所以,假设一个局域网内,有两台电脑同时访问一个网上的服务器,服务器是没办法给两台电脑区分开ip地址的,显示的是一样的。只是可能得到的设备信息不一样(如:浏览器的useragent)

热心网友 时间:2022-04-06 10:38

PHP如何获取内网IP
<?php
$onlineip = $_SERVER['REMOTE_ADDR'];//服务器在局域网的话,那么显示的则是内网IP
echo $onlineip;
?>
如果服务器在*的话,那么访问的话获得的是*的IP

热心网友 时间:2022-04-06 12:13

你这是ip v4,v6的。
其实不管是什么IP。
$_SERVER 里面有你想要的。
还有一种代理ip,很多代码也识别不出来。不然蜘蛛也不会那么多了。

热心网友 时间:2022-04-06 14:04

先定义一个函数,在用分支解决。

热心网友 时间:2022-04-06 16:12

直接上代码:
<?php
class Action
{
function get_inter()
{
$onlineip = '';
if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}
}
?>
---------------------
//调用
include_once ('saveip.php');
$p = new Action();
$intip = $p->get_inter();追问不行,返回的IP是::1

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com