我有一个位于限制性防火墙后面的连接,该防火墙只允许通过代理进行HTTP访问(10.10.1.100:9401)。我得到的IP地址是动态的,子网掩码是255.255.255.255(我知道,很奇怪!)。
import socket
s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
s.connect(( "10.10.1.100", 9401 ))
s.send("GET /index.html HTTP/1.1\r\nHost: aorotos.com\r\n\r\n")
d = s.recv(1024)
print d
s.close()
我在连接过程中遇到一个异常(113,“没有到主机的路由”)。现在是奇怪的部分-我可以浏览网页使用这些相同的代理设置,如果检查当前连接的套接字通过
netstat -tna
export http_proxy='10.10.1.100:9401' && wget aorotos.com/index.html
即使这样也行!如果我启用调试选项(
-d
)在wget中,我甚至可以得到套接字的文件描述符。
通过提供的路由表
route
Destination Gateway Genmask Flags Metric Ref Use Iface
default * 0.0.0.0 U 0 0 0 gprs0
有人知道可能出了什么问题吗?
编辑:目前我的IP是10.16.82.250。世界上只有这些
路线
ifconfig gprs0
-
gprs0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.17.221.94 P-t-P:10.17.221.94 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MTU:1400 Metric:1
RX packets:1832 errors:0 dropped:0 overruns:0 frame:0
TX packets:1844 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:1878364 (1.7 MiB) TX bytes:224746 (219.4 KiB)
我安装了tcpdump并阅读了它的手册,最后安装了wireshark(我使用的是N900),结果从数据包转储中发现,在C程序和python脚本中,我一直在使用端口4901而不是9401!哦!我怪小屏幕,还有我自己。
有没有办法用“我是个白痴”之类的话来结束这个问题?:页
抱歉占用你的时间!)我花了一个多星期的时间。我不敢相信我经历了大部分的
wget
的源代码!)