PHP 是如何获取真实用户 IP?

141 2024-02-24 11:11

一、PHP 是如何获取真实用户 IP?

$_SERVER['HTTP_CLIENT_IP'] 这个头是有的,但是很少,不一定服务器都实现了。客户端可以伪造。

$_SERVER['HTTP_X_FORWARDED_FOR'] 是有标准定义,用来识别经过 HTTP 代理后的客户端 IP 地址,格式:clientip,proxy1,proxy2。详细解释见

http://zh.wikipedia.org/wiki/X-Forwarded-F

...。 客户端可以伪造。

$_SERVER['REMOTE_ADDR'] 是可靠的, 它是最后一个跟你的服务器握手的 IP,可能是用户的代理服务器,也可能是自己的反向代理。客户端不能伪造。

客户端可以伪造的参数必须过滤和验证!很多人以为 $_SERVER 变量里的东西都是可信的,其实并不不然,$_SERVER['HTTP_CLIENT_IP'] 和 $_SERVER['HTTP_X_FORWARDED_FOR'] 都来自客户端请求的 header 里面。

如果要严格获取用户真实 ip

在反爬虫,防刷票的时候,客户端可以伪造的东西,我们一律不信任,此为严格获取。

没有套 CDN,用户直连我们的 PHP 服务器

这种情况下用 tcp 层握手的 ip,$_SERVER['REMOTE_ADDR']

自建集群用 nginx 实现负载均衡的时候

这种情况下,PHP 应用服务器不能对外暴露,我们在 nginx 中实现获取真实 IP 再换发给 PHP 服务器。location /{ proxy_set_header client-real-ip $remote_addr;}

client-real-ip 可以随意自己命名,我们将 tcp 层中跟 nginx 握手的 ip 转发给 PHP。

使用 CDN,从 PHP 服务器取源的时候

CDN 会转发客户端的握手 ip 过来,各家策略有差异,具体去查 CDN 的文档。

当然我们也可以把需要严格核查的业务绑一个二级域名,单独走我们自己的 nginx 服务器,避开 CDN。

如果要宽松获取用户 ip

这种情况比较简单,也是大部分开源程序使用的方式,因为他们要适应最广泛的部署环境,

依次获取和过滤,$_SERVER['HTTP_CLIENT_IP'],$_SERVER['HTTP_X_FORWARDED_FOR'] 的第一个 ip,$_SERVER['REMOTE_ADDR'],谁先有值先用谁。注意这种方式,客户端可以提交假 ip 来欺骗服务器。

二、如何获取 mac 电脑的 ip 地址?

获取 mac 电脑的 ip 地址的方法有以下几种:

  • ass="nolink">如果你想获取你的内网 IP 地址,也就是你的电脑在局域网中的地址,你可以这样做:
    • 我的系统版本是macOS Ventura 13.2.1,如果是其他的版本下面的选项名称可能会有不同。
    • 点击屏幕左上角的苹果图标,然后选择系统设置。
    • 点击网络,然后在右侧栏选择你当前的网络连接。
    • 点击详细信息,然后点击 TCP/IP 标签。
    • 在 IP 地址旁边,你就可以看到你的电脑的内网 IP 地址了。如果你想知道你的路由器的 IP 地址,也就是网关地址,可以看路由器旁边的数字。
  • ass="nolink">如果你想获取你的外网 IP 地址,也就是你在互联网中的地址,你可以这样做:
    • 打开一个浏览器,比如 Safari 或 Chrome。
    • 在地址栏输入 https://www.whatismyip.com/ ,然后按回车键。
    • 在页面上,你就可以看到 Your Public IPv4 is: 后面跟着一串数字。这就是你的外网 IP 地址了。

另外,IP 地址和 MAC 地址是不同的概念。IP 地址是用来标识网络连接的地址,而 MAC 地址是用来标识网络设备(比如网卡)的物理地址。IP 地址可能会变化,但 MAC 地址通常是固定不变的。

三、怎么获取ip地址?

一种方法是使用IPconfig命令,可以查看本机的IP地址。第二种方法是使用ifconfig命令,可以检查本机的IP地址。第三种方法是从网络管理器中查看本机的IP地址。

最后,也可以使用网络诊断工具,来查看本机的IP地址。

四、怎么获取IP地址?

获取IP地址有以下4种方式:

1. DHCP方式:此方式可以让用户自动获取IP地址;

2. 手工设定方式:此方式可以让用户自行手动设定IP地址;

3. 静态IP方式:此方式可以让用户指定给客户端的IP地址;

4. 动态DNS方式:此方式可以通过DNS服务器获取IP地址。

五、怎样获取IP地址?

获取 IP 地址的方法因设备而异,下面我将为您介绍常见设备的获取方法:

1. Windows 10:在 Windows 10 上获取 IP 地址的方法是打开“设置”,然后点击“网络和 Internet”,在“网络和 Internet”页面中选择“以太网”或“Wi-Fi”,然后点击“已连接的网络”,您将看到您的 IP 地址。

2. Mac:在 Mac 上获取 IP 地址的方式是打开“系统偏好设置”,然后点击“网络”,选择您的连接方式(如 Wi-Fi 或以太网),然后点击“高级”按钮,在“TCP/IP”选项卡中即可看到您的 IP 地址。

3. iOS:在 iPhone 或 iPad 上获取 IP 地址的方式是打开“设置”,然后点击“Wi-Fi”,在受到信号的 Wi-Fi 网络的名称旁,您将看到一个“i”图标,点击它您将看到您的 IP 地址。

4. Android:在 Android 设备上获取 IP 地址的方式是打开“设置”,然后点击“Wi-Fi”,在所连接的 Wi-Fi 网络名称旁边,您将会看到您的 IP 地址。

上述是常见设备获取 IP 地址的方法,希望能为您提供帮助。

六、如何获取IP地址?

获取IP地址的方法有多种,以下是常用的几种方法:

1. 在Windows系统中,可以在命令行窗口中输入ipconfig命令,即可查看本机的IP地址;

2. 在Mac系统中,可以点击屏幕左上角的苹果图标,选择“系统偏好设置”>“网络”,即可查看IP地址;

3. 在路由器后台管理界面中,可以查看连接到路由器的设备的IP地址;

4. 在网站上使用在线IP地址查询工具,输入自己的公网IP地址,即可查看IP地址信息;

5. 在移动设备上,可以在网络设置中查看IP地址。

需要注意的是,IP地址分为内网IP和公网IP,获取方法可能略有不同。

七、如何获取ip地址?

获取IP地址的方法有很多,比如用cmd命令行,输入ipconfig命令获取本机IP地址,或者使用网络工具如WireShark来监控网络数据包并获取IP地址信息。

此外,也可以通过网络查询工具等在线工具来查询指定主机的IP地址。

八、自动获取IP地址?

1、打开电脑在任务栏点击是无线网络或者本地连,打开“网络和共享中心”。

2、打开之后选择 点击“属性”后在点击“interne协议版本4”点击后选择“属性”,可以看到IP地址是自动获取。

3、自动获取IP地址查询方式可以按键盘上WIN图标+R打开运行后输入“CMD”。

4、会弹出命令提示符来,然后输入命令为“ipconfig”,然后就可以看“DNS后缀IPv4地址,子网掩码,默认网关”就是我们自动获取IP地址。

5、也可以通过进入路由器输入登录管理员密码之后也可以查询到获取IP地址,如果不知道进入路由器IP地址,可以翻开路由器背面就可以看到该路由器IP地址。

6、如果觉得自动获取IP地址很慢可以手动设置IP, IP地址可以开头为“192.168.1.2 ”后面两个”1 2“可以自定义多少数字,子网掩码都是“255.255.255.0”默认网关也同样是“192.168”.后面也同样是自定义数字.DNS服务器可以根据当地情况设置。

九、怎样取消自动获取IP地址,确定IP地址?

为每个计算机绑定IP地址,加入路由器中。选择禁止表外的ip地址访问就可以了。网上还有说是吧DHCP给关了, 直接分配IP地址, 第一条我用过, 第二条没有用过,你可以试一下。

十、如何使用批处理脚本将dhcp获取的IP地址转为静态IP?

这样不是很复杂吗?每台电脑上面都要运行批处理,而且你后期要修改的话也很难维护。

如果是我的话,就仍然让客户机用“自动获取”,然后在DHCP上面配置静态地址分配或者IP-mac绑定。这样客户机获取到的都是固定的IP,而且也不能自行修改。以后你要改IP的话,只需要在网关上做修改就可以了。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片