C和MFC巧妙獲取外網(wǎng)IP的兩種實現(xiàn)方法
本文以C與MFC的兩個實例詳述了取外網(wǎng)IP的兩種實現(xiàn)方法,具體實現(xiàn)代碼如下:
MFC語言實現(xiàn)獲取外網(wǎng)IP:
# include <windows.h> # include <urlmon.h> # pragma comment(lib,"URLMON.lib") void main() { URLDownloadToFile(NULL,"http://www.ip138.com/ip2city.asp","ip.txt",0,NULL); system("notepad ip.txt"); } #include<urlmon.h> #pragma comment (lib,"Urlmon.lib") char buf[MAX_PATH] = {0}; char chTempIp[128]; char chIP[64]; URLDownloadToFile(0,"http://www.ip138.com/ip2city.asp","c:\\1.ini",0,NULL); FILE *fp=fopen( "c:\\1.ini", "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("c:\\1.ini"); continue; } } } } MessageBox(chIP);
C實現(xiàn)獲取外網(wǎng)IP:
#include <afxinet.h> void CLanChatDlg::GetNetIP() { SetDlgItemText(IDC_NET_IP,"正在獲取外網(wǎng)IP"); CString strsource; CString Address; CInternetSession mySession(NULL,0); CHttpFile* myHttpFile=NULL; Address="http://www.ip138.com/ip2city.asp";//ip138網(wǎng)頁 myHttpFile=(CHttpFile*)mySession.OpenURL(Address);//讀取網(wǎng)絡(luò)地址 while(myHttpFile->ReadString(strsource)) { //循環(huán)讀取下載來的網(wǎng)頁文本 // AddToLog(strsource); int begin=0; begin=strsource.Find("[",0); if(begin!=-1)//如果找到"[", 則找"]" 中括號內(nèi)的文本則是 你的外網(wǎng)ip { int end=strsource.Find("]"); m_internetip=strsource.Mid(begin+1,end-begin-1);//提取外網(wǎng)ip SetDlgItemText(IDC_NET_IP,m_internetip);//在左下角顯示外網(wǎng)ip } }
這兩個示例都是通過ip138網(wǎng)站來查詢外網(wǎng)IP的,感興趣的讀者也可以根據(jù)自己的喜好改動一下代碼,使之更加完善。
欄 目:C語言
下一篇:VC中實現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法
本文標(biāo)題:C和MFC巧妙獲取外網(wǎng)IP的兩種實現(xiàn)方法
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3575.html
您可能感興趣的文章
- 01-10求子數(shù)組最大和的解決方法詳解
- 01-10用C實現(xiàn)添加和讀取配置文件函數(shù)
- 01-10深入串的模式匹配算法(普通算法和KMP算法)的詳解
- 01-10如何求連續(xù)幾個數(shù)之和的最大值
- 01-10如何在二叉樹中找出和為某一值的所有路徑
- 01-10用代碼和UML圖化解設(shè)計模式之橋接模式的深入分析
- 01-10C語言中字符串和數(shù)字的相互轉(zhuǎn)換實現(xiàn)代碼
- 01-10淺析C語言中printf(),sprintf(),scanf(),sscanf()的用法和區(qū)別
- 01-10深入解析int(*p)[]和int(**p)[]
- 01-10淺析C語言頭文件和庫的一些問題


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實例總結(jié)
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?