专栏首页仙士可博客关于伪造ip的可行性

关于伪造ip的可行性

今晚,用curl进一个网站发现ip被限制访问了,然后我又开始了百度伪造请求ip的方法

关于php获取ip的函数 http://www.php20.cn/article/sw/ip/77

php一般用3个参数去判断ip

X_FORWARDED_FOR:获取http请求头X_FORWARDED_FOR属性

HTTP_CLIENT_IP : 获取http请求头ip  CLIENT-IP属性

REMOTE_ADDR :与服务器握手的客户端ip

理解了这3个参数之后,我百度了下curl伪造ip

然后我访问自己的网站的以下代码(本地局域网访问),

curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json; charset=utf-8;X-FORWARDED-FOR:111.222.333.4', 'CLIENT-IP:111.222.333.4'));
//上面这行是curl的,懒得写全,毕竟不在同一个文件

echo getenv('HTTP_CLIENT_IP'); 
echo getenv('HTTP_X_FORWARDED_FOR'); 
echo getenv('REMOTE_ADDR');

运行结果如下

不难发现,REMOTE_ADDR 是正确的ip,该ip是tcp协议握手时的客户端ip,是不能伪造的 而X_FORWARDED_FOR已经是返回了自定义的值

总结以下:

用户的真实ip是无法伪造的,因为不管怎么样,都得建立tcp连接,

除非不建立tcp连接,直接经过tcp第一次握手返回一个错误的ip,不接受服务器的返回数据,这样才可以伪装一次tcp握手请求,

在正常的一次tcp连接,ip永远无法被伪造,如果没有ip,tcp连接将不成立,服务器将无法与客户端建立连接,无法发送和获取客户端的数据

在这结论之中,移动端关于使用数据流量时,虽然能获取到用户的真实ip,但这个ip,是手机与运营商基站建立连接之后,运营商给基站不定时分配的ip,只要是用户连接上了这个基站,那么所有连接这个基站的用户ip都会相同

再然后,由于REMOTE_ADDR是获取握手ip,如果使用跳板(代理服务器.服务器设定的cdn等)访问,则获取到的是代理服务器和cdn节点服务器的真实ip,而非用户的真实ip,至于用户的真实ip,代理服务器,和cdn节点是可以获取的

有人可能会问,那用户通过跳板访问,能获取到真实ip吗?

答案是不行的,除非跳板做好事,给服务器返回客户端的真实ip;一般跳板会用http头的X-FORWARDED-FOR属性进行返回用户的真实ip,而会不会返回,这就是跳板的问题了

总而言之,只要经过tcp握手成功后,都不可能伪装ip,只能说通过跳板去变动ip,而这个变动ip,也是不能自定义的,这个ip也是ip协议上一个合法的ip

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用家用电脑作为服务器

    在大多数时候,云服务器的价格让人望而却步,尤其是带宽方面,带宽低,如果没有cdn,根本无法正常使用,现在我就教大家用自己电脑搭建一台云服务器

    仙士可
  • php获取客户端ip

    仙士可
  • tp自动验证流程和返回空数组的问题

    今天下午上班做配置表数据自动验证更新时,发现验证失败返回false,而验证成功返回的却只是空数组,导致一直判断为false;

    仙士可
  • 微信小程序获取用户所在城市

    在微信小程序中, 获取用户的地理位置是需要权限的, 如果只是获取用户所在的城市信息, 那只需查看用户ip所在的城市就好了, 下面我们就完成获取用户ip的小程序逻...

    Javanx
  • 【Go】获取用户真实的ip地址

    用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip 非常困难,大多数的框架及工具库都会封装各种获取用户真实 ip 的方法,在 exne...

    thinkeridea
  • 调用python-nmap实现扫描局域网

    使用环境:Raspberry 3b+ +netifaces+python-nmap+nmap

    py3study
  • 听说你的爬虫被封了?

    网上有许多代理ip,免费的、付费的。大多数公司爬虫会买这些专业版,对于普通人来说,免费的基本满足我们需要了,不过免费有一个弊端,时效性不强,不稳定,所以我们就需...

    用户1332428
  • 听说你的爬虫被封了?

    网上有许多代理ip,免费的、付费的。大多数公司爬虫会买这些专业版,对于普通人来说,免费的基本满足我们需要了,不过免费有一个弊端,时效性不强,不稳定,所以我们就需...

    意气相许的许
  • django request 获取请求的 IP 地址

    KEVINGUO_CN
  • python 爬虫之搭建代理ip池–测试代理ip可用性

    kirin

扫码关注云+社区

领取腾讯云代金券