获得本机的公网IP

来源:互联网 发布:新网域名注册官网 编辑:程序博客网 时间:2024/05/13 11:33
#include <stdio.h>#include <tchar.h>#include <Windows.h>#include <Wininet.h>#pragma comment(lib, "Wininet.lib")BOOL GetPubIp(char *szIP) { HINTERNET hInternet = NULL; HINTERNET hConnect= NULL; char szText[512]= {0};TCHAR *szAgent= _T("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");TCHAR *szAccept= _T("Accept: */*\r\n\r\n"); TCHAR *szUrl= _T("http://iframe.ip138.com/ic.asp");//"http://www.ip138.com/ip2city.asp"; DWORD dwReadLen= 0;DWORD dwFlags= INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD;__try {    hInternet = InternetOpen(szAgent, 0, NULL, NULL, 0);    if(!hInternet) __leave;   hConnect = InternetOpenUrl(hInternet, szUrl, szAccept, _tcslen(szAccept), dwFlags, 0);    if(!hConnect) __leave;    InternetReadFile(hConnect, szText, 511, &dwReadLen);    //printf("%s\n", szText);} __finally { if(hInternet) InternetCloseHandle(hInternet); if(hConnect) InternetCloseHandle(hConnect); } char *start=strstr(szText,"您的IP是:["); if(!start)    return FALSE; start += strlen("您的IP是:[");char *temp = strstr(start, "]"); strncpy(szIP, start, temp - start); return TRUE; } int _tmain(int argc, _TCHAR* argv[]){char szMyIP[32]={0}; GetPubIp(szMyIP);printf("你的IP是: %s\n", szMyIP);return 0;}

ZZ: http://www.2cto.com/kf/201204/128431.html