VC获取外网IP
来源:互联网 发布:java和javaweb的区别 编辑:程序博客网 时间:2024/06/05 17:29
近日做一VC客户端,需要获取本机的外网IP地址,查询了相关资料,因为使用的宽带上网方式,本机的外网IP其实不在本机,故没有办法直接获取到,所以是用Get方法从其他网站获取,实际用的是从新浪和ip138两个获取,来个双备份。
从新浪获取:
BOOL GetIPAddressFromSinaAPI() { CString strTemp; m_strIPServerSina = "http://ipapi.sinaapp.com/api.php?f=text"; strTemp = doGet(m_strIPServerSina); CString strIPInfo = ConvertUTF8toGB2312(strTemp,strTemp.GetLength()); int i = 0; const char* iIndex = strstr(strIPInfo,"IP地址:"); if( iIndex != NULL ) { char temp[128]; sprintf_s(temp,"%s",iIndex); char ip[128] = {'\0'}; unsigned int i = 0; for(i = strlen("IP地址:"); i< strlen(temp); i++) { ip[i- strlen("IP地址:")] = temp[i]; if( (temp[i] < 46) || (temp[i] > 57) ) { ip[i- strlen("IP地址:")] = '\0'; m_strIP = ip; break; } } } else {return FALSE; } iIndex = strstr(strIPInfo,"归属地信息:"); if( iIndex == 0x0000 ) {m_strCity = "unknown"; } else {m_strCity = iIndex+strlen("归属地信息:"); } return TRUE;}从ip138获取:
BOOL GetIPAddressFromIP138(){CString strTemp;m_strIPServerIP138= "http://iframe.ip138.com/ic.asp";strTemp = doGet(m_strIPServerIP138);int i = 0;char* ipStart = (char*)strstr(strTemp,"您的IP是:["); if( NULL == ipStart ) return FALSE;char* ipEnd = (char*)strstr(ipStart,"]"); if( NULL == ipEnd ) return FALSE;char* cityStart = ipEnd+1;if( NULL == cityStart)return FALSE;*ipEnd = '\0';m_strIP = ipStart+strlen("您的IP是:[");char* cityRealStart = strstr(cityStart,"来自:");if( NULL == cityRealStart ) return FALSE;char* cityEnd = strstr(cityRealStart,"<");if( NULL== cityEnd ) return FALSE;*cityEnd = '\0';m_strCity = cityRealStart + strlen("来自:");return TRUE;}
说明一下,两个函数里面所使用的doGet,是Get方式与服务器通信,网上可以寻找到一个封装VC进行POST/GET通信的类CHttpClient,这个doGet即是里面的一个成员函数。如果返回TRUE,那么m_strIP就是IP的字符串,比如“111.112.120.222”,m_strCity则是归属地字符串,比如“天津市 电信”。
0 0
- VC获取外网IP
- VC获取外网IP
- vc 简单获取外网IP
- VC获取外网IP函数
- VC--获取本机 局域网IP 和外网IP
- VC--获取本机 局域网IP 和外网IP
- VC--获取本机 局域网IP 和外网IP
- VC获取主机名与外网IP(CString类型)
- VC获取主机名与外网IP(CString类型)
- vc 获取外网IP与是否用户已经联网
- VC++获取外网IP的几个方法
- vc获取本地IP
- VC 获取域名IP
- VC获取IP地址
- VC 根据域名获取IP
- VC 获取IP host name
- vc-获取本机IP
- VC 获取本地ip地址
- Computex 2014:雷斯特科技所展的特异键盘
- iOS 8 意想不到的隐藏设定- 界面颜色和字型都可自订-! [截图]
- eclipse Maven配置以及使用方法
- Java NIO原理和使用
- ARM PL330 DMA控制器开发(1)
- VC获取外网IP
- [限免]小心炸弹! 「Crazy Shipping」疯狂货运公司来啦~!
- ibatis 开发中的经验 (三)Struts+Spring+Ibatis 开发环境搭建
- 对各字符集编码范围的总结
- LNMP 安装配置
- 手机没电- 穿上这双鞋多走两步就可以 [影片]
- Ubuntu修改mysql的默认字符编码
- 智慧生活初体验 Quirky Pivot Power® Genius 巧趣™ 让你不在家也可以控制电器 ...
- CSS强制英文、中文换行与不换行 强制英文换行