socket编程 模拟HTTP协议GET请求实例—获取ip物理地址

本实例是使用HTTP协议GET请求的方法从ip38.com网页中获取内容的程序,这里对HTTP协议和socket不进行叙述
你也可以从其它可以提供查询ip物理地址的服务器网页中获取,但是程序中的一些代码你就需要进行改改了
这里以ip38.com为例

在此之前我们先获得得到相应ip物理地址的GET请求HTTP头,这可以通过使用抓包来实现,或者有些浏览器会提供一些方便的抓取HTTP头的插件,比如火狐的firebug、live http headers等,这里怎么做我不进行解释,我将我抓到的结果附上来

GET /index.php?ip=XXX.XXX.XXX.XXX HTTP/1.1
Host: ip38.com
User-Agent: Mozilla/5.0 (X11; Linux i686)
Accept: text/html
Accept-Language: zh-cn
Cookie: saeut=8.35.201.134.1372000527717882; CNZZDATA2076920=cnzz_eid%3D113842911-1372009285-http%253A%252F%252Fip38.com%26ntime%3D1372009285%26cnzz_a%3D1%26retime%3D1372009302333%26sin%3Dnone%26ltime%3D1372009302333%26rtime%3D0

第一行的XXX.XXX.XXX.XXX为你想要查询的相应ip地址
User-Agent可以随便写你自己喜欢的内容,也可以没有这段

我们要做的就是建立一个tcp接连,然后发送HTTP请求头,接着从服务器返回的数据中解析出我们需要的内容
注意本程序我假想发出去的请求一定会成功,所以没有对服务器返回状态进行解析,如果你有需要可以自行加上这些内容

下面放代码

我们以百度的一个ip地址(123.125.114.144)做测试看看本程序的效果

$./get_ip_addr 123.125.114.144
查询结果:北京市 百度公司

–阅读次数(43)

发表评论

电子邮件地址不会被公开。

*