获取计算机广域网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,如需转载请自行联系原作者


相关文章
|
网络协议 网络架构
计算机网络实验(华为eNSP模拟器)——第八章 动态主机配置协议(DHCP)
计算机网络实验(华为eNSP模拟器)——第八章 动态主机配置协议(DHCP)
计算机网络实验(华为eNSP模拟器)——第八章 动态主机配置协议(DHCP)
|
2月前
|
存储 缓存 网络协议
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
|
2月前
|
网络协议 网络架构
计算机网络:思科实验【5-IPv4地址——分类地址与划分子网】
计算机网络:思科实验【5-IPv4地址——分类地址与划分子网】
|
2月前
|
存储 缓存 网络协议
计算机网络:思科实验【3-集线器与交换机的区别、交换机的自学习算法】
计算机网络:思科实验【3-集线器与交换机的区别、交换机的自学习算法】
|
2月前
|
网络协议 算法 Linux
【计算机】网络基础
独立模式 数据在每台计算机中呈现串行的方式传递 网络互联 多台计算机连接在一起,完成数据共享
17 0
|
4月前
|
缓存 负载均衡 安全
虚拟 IP 地址对于网络有什么用处?
随着互联网技术和科技的发展,在上网的时候使用代理ip的使用人数也越来越多,因为业务的需求需要使用http动态代理ip的应用范围越来越多,那么http代理ip组成成分有哪些?接下来小编就给大家介绍一下
132 0
虚拟 IP 地址对于网络有什么用处?
【计算机网络】网络层(三)ip地址划分
前言 注:本文为我对《计算机网络 第五版》(小蓝书)原书阅读后的整理和思考。并不是直接翻译或者照搬原文。表述和理解上可能会和原文意思有出入。有理解不对的地方还望各位大神指出! ip地址的转化表示 每个
135 0
|
数据安全/隐私保护
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(一)
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(一)
233 0
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(一)
|
数据安全/隐私保护
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(二)
【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )(二)
200 0
|
缓存 网络性能优化 网络虚拟化