开发者社区> 科技小先锋> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

获取计算机广域网IP的一个例子

简介:
+关注继续查看
最近需要在客户端加入检测用户IP地址,便于分析信息来源的功能。 然而socket的API所获取到的IP是局域网的,查了下资料,只有穿过NAT之后才能拿到客户的出口IP地址。 于是变通了一下思路,采用访问一个web程序的方式,根据http get返回信息拿到客户端的IP。
测试,用asp写了一句.
代码:
InBlock.gif<%=Request.ServerVariables("REMOTE_ADDR") %>
不需要太多的信息,只需要返回给我一个IP地址的字符串就行了。

然后用了现成的 基于c的curl开发包,用于向web服务器发起一次请求并且接收数据。这个curl库很强大,支持文件上传下载,http get提交,post提交等等很多功能。有兴趣的朋友可以了解一下。

之后就很简单了,针对curl进行了一次简单的封装,然后发起一个请求并接收就OK
代码:
InBlock.gif//创建返回HTTP信息对象 
InBlock.gif        receiveInfo myReceiveInfo; 
InBlock.gif        //定义获取IP的http地址 
InBlock.gif        std::string url = "http://www.pal66.com/alan/getip/index.asp"; 
InBlock.gif        //返回IP 
InBlock.gif        std::string wanIpStr = myReceiveInfo.ReceiveGetInfo(url); 
InBlock.gif        //转换格式 
InBlock.gif        m_localWanIp =wxString(wanIpStr .c_str(),wxConvUTF8);
代码在getwanipSource.rar 
程序在 Release.part01.rar -  Release.part04.rar  没办法.支持wxWidgets的运行库有点大,什么时候Win7能够把wxWidgets的运行库内置就完美了。
windows xp sp3+wxWidgets2.8.9 +CodeBlocks8.0.2+gcc 3.4.5 环境下编译通过
用vc或者其他工具的朋友。其实将代码中负责http请求的 curlPlus.h curlPlus.cpp 单独拿出来加入到自己的工程里就可以了。这个类是基于标准C++的,为的是将curl 的c语言风格接口再封装一次,更加方便而已。


本文转自阿汐 51CTO博客,原文链接:http://blog.51cto.com/axiii/166116,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(一)
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(一)
0 0
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(二)
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(二)
0 0
《通信技术导论(原书第5版)》——2.5 内部使用的IP专用交换系统
本节书摘来自华章出版社《通信技术导论(原书第5版)》一书中的第2章,第2.5节,作者:[美]安娜贝尔Z.多德(Annabel Z. Dodd)著 唐艳华 张选涛 译 赵志 审校,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
945 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
又快又稳:阿里云下一代虚拟交换机解析
立即下载
问答网络
立即下载
云通信—构筑直连用户之“桥”
立即下载