VC获取主机名与外网IP(CString类型)
- 发表于
- VC
在VC下动态获取主机名与外网IP地址的C源码,有兴趣的可以看看!
VC动态获取主机名与外网IP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
/************************************************************************/ /* 函数说明:获取当前外网IP地址 /* 参 数:无 /* 返 回 值:返回外网IP地址、CString类型字符串 /* By:Koma 2009.08.21 14:12 /************************************************************************/ CString CQDlg::GetIPAddress() { char buf[MAX_PATH] = {0}; char chTempIp[128]; char chIP[64]; CString strPath; strPath = GetExePath() + "//netip.ini"; URLDownloadToFile(0,"http://www.ip138.com/ip2city.asp",strPath,0,NULL); FILE *fp=fopen( strPath, "r" ); if ( fp != NULL ) { fseek(fp, 0, SEEK_SET); fread(buf,1,256,fp); fclose(fp); char* iIndex = strstr(buf,"["); if (iIndex) { sprintf( chTempIp,"%s",iIndex); int nBuflen = strlen(chTempIp); for(int i =0; i<nBuflen; i++) { chIP[i] = chTempIp[i+1]; if(chTempIp[i] == ']') { chIP[i-1] = '/0'; DeleteFile(strPath); continue; } } } } CString strTemp=""; if(chIP != "") { strTemp.Format("%s",chIP); } return strTemp; } /************************************************************************/ /* 函数说明:获取当前主机名 /* 参 数:无 /* 返 回 值:返回主机名、CString类型字符串 /* By:Koma 2009.08.21 14:23 /************************************************************************/ CString CQDlg::GetHostName() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(2,0); err = WSAStartup(wVersionRequested,&wsaData); if(err != 0) { return err; } if(LOBYTE(wsaData.wVersion != 2) || HIBYTE(wsaData.wVersion) != 0) { WSACleanup(); return (char)WSAVERNOTSUPPORTED; } char szHostName[256]; int nRetCode; CString str=""; //调用API来获得主机名 nRetCode = gethostname(szHostName,sizeof(szHostName)); if(nRetCode != 0) { return WSAGetLastError(); } if(szHostName != "") { str.Format("主机名:%s",szHostName); } return str; } |
原文连接:VC获取主机名与外网IP(CString类型)
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。