首页 > 代码库 > MFC C++ 获取外网IP地址
MFC C++ 获取外网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; } void CNetDlg::OnGetNetIp() { // 本地化,以支持中文 _tsetlocale(LC_ALL, _T("chs")); // #include <locale.h> CString strSource; char chSource[4096] = {0}; CString Address; CInternetSession mySession(NULL,0); CHttpFile* myHttpFile=NULL; Address=_T("http://20140507.ip138.com/ic.asp");//ip138网页 myHttpFile=(CHttpFile*)mySession.OpenURL(Address);//读取网络地址 try{ while(myHttpFile->Read(chSource, 4096)) { //循环读取下载来的网页文本 int begin=0; WCHAR* wchSource = GB2312ToUnicode(chSource); strSource = wchSource; delete[] wchSource; OutputDebugString(strSource); begin=strSource.Find(_T("["), 0); if(begin!=-1)//如果找到"[", 则找"]" 中括号内的文本则是 你的外网ip { int end=strSource.Find(_T("]")); CString m_internetip=strSource.Mid(begin+1,end-begin-1);//提取外网ip AfxMessageBox(m_internetip); break; } } } catch(CInternetException *e) { AfxMessageBox(e->m_dwContext); } }
参考:
http://blog.csdn.net/cbk861110/article/details/7844729
http://www.ip138.com
的网页源码中查找到。
<tr><td align="center"><h3>www.ip138.com IP查询(搜索IP地址的地理位置)</h3></td></tr> <tr> <td height="30" align="center" valign="top"><iframe src=http://www.mamicode.com/"http://20140507.ip138.com/ic.asp" rel="nofollow" frameborder="0" scrolling="no" width="100%" height="100%"></iframe>>MFC C++ 获取外网IP地址
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。