MFC C++获取本机外网IP地址
2014-11-17 17:30
375 查看
本文参考:/article/1800256.html
主要思路通过访问http://www.ip138.com/可以获取到本机IP,通过查看网页源码其IP获取地址为:http://1111.ip138.com/ic.asp。因此可以通过访问http://1111.ip138.com/ic.asp获取网页源码解析出IP,当然也可以解析出IP所在的地址。
源码如下:
主要思路通过访问http://www.ip138.com/可以获取到本机IP,通过查看网页源码其IP获取地址为:http://1111.ip138.com/ic.asp。因此可以通过访问http://1111.ip138.com/ic.asp获取网页源码解析出IP,当然也可以解析出IP所在的地址。
源码如下:
#include<afxinet.h> //GB2312 转换成 Unicode wchar_t* GB2312ToUnicode(const char* szGBString) { UINT nCodePage = 936; //GB2312 int nLength=MultiByteToWideChar(nCodePage,0,szGBString,-1,NULL,0); wchar_t* pBuffer = new wchar_t[nLength+1]; MultiByteToWideChar(nCodePage,0,szGBString,-1,pBuffer,nLength); pBuffer[nLength]=0; return pBuffer; } CString GetNetIp() { CString internetIp = _T(""); char chSource[4096] = {0}; CString strAddress; CInternetSession mySession(NULL,0); CHttpFile* myHttpFile=NULL; strAddress = _T("http://1111.ip138.com/ic.asp");//ip138网页 //strAddress = _T("http://www.apnic.net/"); TRY { myHttpFile = (CHttpFile*)mySession.OpenURL(strAddress); //while(myHttpFile->Read(chSource, 4096)); while(myHttpFile->Read(chSource, 4096)) { //循环读取下载来的网页文本 int begin = 0; // 目前只处理字符集为gb2312的情况 CString sSourece(chSource); begin = sSourece.Find(_T("["),0); if(begin != -1) { WCHAR* wchSource = GB2312ToUnicode(chSource); internetIp = wchSource; delete[] wchSource; } begin = internetIp.Find(_T("["),0); if(begin !=- 1)//如果找到"[", 则找"]" 中括号内的文本则是 你的外网ip { int end = internetIp.Find(_T("]")); internetIp = internetIp.Mid(begin+1,end-begin-1);//提取外网ip break; } } myHttpFile->Close(); mySession.Close(); } CATCH(CInternetException,e) { } END_CATCH TRACE(internetIp); return internetIp; }
相关文章推荐
- linux C++ 获取服务器外网IP地址(使用系统调用system)
- MFC 获取外网IP地址和MAC地址
- shell中用curl获取外网ip地址
- Delphi获取机器名和IP(包括内网和外网)地址的方法
- C++获取本机IP地址
- 获取本机ip和外网ip地址
- 获取外网IP地址
- 在VC下动态获取主机名与外网IP地址,
- 获取外网IP和本机所有网卡地址信息
- C++控制台程序获取本机IP地址
- 获取本机的外网ip地址
- 获取外网IP地址的批处理代码
- C# winfrom获取外网IP地址和物理地址
- C/C++获取本机IP地址
- C# Winform程序获取外网IP地址
- 【原创】C++实现获取本机机器名及外网IP代码
- ASP.NET 怎么获取客户端的外网IP地址
- 获取本机外网IP地址(External IP Address)示例
- 【转】用Linux命令行获取本机外网IP地址
- C++获取当前机器内网IP地址