<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <blockquote>
讯享网
先来假设两个使用 Python 的网络请求库 场景:
- 使用代理 ip 访问某网站,想查看当前的请求的代理 ip
- 访问的是域名,但想查看 后的 ip
本篇文章就来介绍以上两种获取 的方法。
的安装和使用参考 官方文档:https://docs.python-requests.org/en/latest/

讯享网
HTTP请求
引用这张图是想说,后面会用到 Socket连接(有了 Socket连接,就可以获取到本地和远程的 了。
HTTP请求和响应步骤
- 图片来自 https://zhuanlan.zhihu.com/p/

Socket
看到 菜鸟教程 的Socket函数介绍,后面会用到这两个Socket 函数。
- 返回连接套接字的远程地址。返回值通常是元组(ipaddr,port)。
- 返回套接字自己的地址。通常是一个元组(ipaddr,port)

DNS查询
网站:https://tool.chinaz.com/dns/?type=1&host=blog.csdn.net
这个网站可以查看该域名 blog.csdn.net 所有的 ,看到有多个ip,这就是为什么访问同一个网站时却会是不同的 。

打个比喻:就近原则,哪个服务器距离当前请求近,就由那个服务器来处理请求。(大致如此)

下面请出本次的受害者:https://httpbin.org/get
讯享网
请求时候需要设定 ,官方释义如下:
调试模式,下断点
可以看到 响应值的 raw._connection.sock,是一个

:返回连接套接字的本地地址
这里可以打开,然后输入 ,可以看到当前的主机 地址;
这是没有开启代理的~

这是开启了代理的~


从上图中可以看到,他们访问的网址不一样,但是他们的返回结果是一样的;
左侧访问的是 https://httpbin.org/get,右侧访问的则是该域名解析后的 :https://3.226.169.83/get
至于为什么会这样,这不是本文章要讨论的内容~
:返回连接套接字的远程地址
至于这个为啥不和上图的一样,因为它有多个吖!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/147790.html