C++代码获取外网IP
4星 · 超过85%的资源 需积分: 40 178 浏览量
更新于2024-12-14
6
收藏 636B TXT 举报
"该代码片段是用C++编写的一个简单函数,用于获取本机的外网IP地址。它通过向网站`http://www.ip138.com/ip2city.asp`发送HTTP请求,然后读取返回的HTML内容来提取IP地址。这个过程涉及到网络编程和文件操作,具体包括URL下载、文件读取以及字符串处理。"
在C++编程中,获取本机外网IP是一项常见的需求,特别是在网络通信和定位服务中。上述代码实现了一个名为`GetMyAsp`的函数,它利用Windows API中的`URLDownloadToFile`函数从指定的URL下载网页内容。`URLDownloadToFile`函数是一个来自`urlmon.lib`库的API,它负责从互联网上下载文件到本地磁盘。
首先,定义了一个字符数组`szMyIp`用于存储获取到的IP地址,初始化为全零。然后,向`www.ip138.com`发送一个HTTP GET请求,请求的URL是`http://www.ip138.com/ip2city.asp`,该页面会返回包含访问者IP地址的HTML内容。请求成功后,数据被保存到本地的`ip.txt`文件中。
接下来,打开并读取`ip.txt`文件。这里使用了标准C库的`fopen`、`fread`和`fclose`函数,分别用于打开、读取和关闭文件。读取到的内容被存储在`fBuffer`数组中。
为了从HTML内容中提取IP地址,代码遍历`fBuffer`,寻找特定的字符序列。在HTML中,IP地址通常被方括号包围,因此通过查找字符0x5b(左方括号)和0x5d(右方括号)来确定IP地址的位置。找到这些字符后,使用`memcpy`复制IP地址到`szMyIp`数组,并打印出来。
最后,调用`DeleteFile`删除临时文件`ip.txt`以清理工作空间。
这个方法虽然简单,但依赖于特定网站的HTML结构,如果网站结构改变,可能无法正确提取IP。此外,这种方法可能受到网络延迟和网站访问限制的影响。在实际应用中,更推荐使用DNS查询或第三方API来获取更稳定可靠的外网IP地址。例如,可以使用公共的IP查询API,如`https://api.ipify.org`,它会直接返回你的外网IP。
2022-07-15 上传
2023-06-01 上传
2023-06-05 上传
2023-07-13 上传
2023-09-08 上传
2023-07-16 上传
2024-11-08 上传
sea_spray
- 粉丝: 38
- 资源: 9
最新资源
- react_synthPad_2021
- 简历
- 基于角点检测和非局部相似性的视频压缩感知重构算法
- tls:过境最小二乘:一种优化的过境拟合算法,用于搜索小行星的周期性过境
- DeepCache:移动版CNN的缓存设计
- botsquad:自动化代理即服务
- 美萍超市销售管理系统标准版
- vcurrency:https的API包装器(用V编写)
- c代码-回文检查(正反读都一样的)
- openGJK:针对C,C#和Matlab的Gilbert-Johnson-Keerthi(GJK)算法的快速可靠实现
- nano-2.2.1.tar.gz
- iOS17.0真机调试包
- CRUD_PHP_PDO_MYSQL:CRUD SIMPLES COM PHP + PDO + MYSQL
- latteminjae.github.io
- stl_test:STL中deque、list、vector、stack、map、set、hashmap的基本应用
- ruhue:试用Philips Hue,记录下我的进度