东学西学, 最近在学 WinSock 编程了....
写了一个小小的聊天程序, 一直懒于写博客...
但还是记录下学习过程, 并分享点或许实用的代码....
初学(昨天<2012-09-09>开始学网络), 别见笑~~~
-----------------------
这个是从 ip138.com 获取IP数据并返回的, 有时候建立连接会用到.
获取IP的页面是:http://iframe.ip138.com/city.asp
源代码(VC60编译的):
//getip.c
#include <Windows.h>
#include <WinInet.h>
#include <stdio.h>
#include <string.h>
#pragma comment(lib, "WinInet.lib")
int main(void)
{
char buffer[256];
char* ptr1 = NULL;
HINTERNET hInternet = NULL;
HINTERNET hInetURL = NULL;
DWORD dwNumberOfBytesRead;
hInternet = InternetOpen("nbsg", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(hInternet == NULL)
{
fprintf(stderr, "InternetOpen() 错误.\n");
return GetLastError();
}
hInetURL = InternetOpenUrl(hInternet, "http://iframe.ip138.com/city.asp", NULL, 0, 0, 0);
if(hInetURL == NULL)
{
fprintf(stderr, "InternetOpenUrl 错误.\n");
InternetCloseHandle(hInternet);
return GetLastError();
}
if(!InternetReadFile(hInetURL, buffer, sizeof(buffer)-1, &dwNumberOfBytesRead))
{
fprintf(stderr, "InternetReadFile() 错误.\n");
InternetCloseHandle(hInetURL);
InternetCloseHandle(hInternet);
return GetLastError();
}
buffer[dwNumberOfBytesRead] = 0;
ptr1 = strstr(buffer, "您的IP是:[");
if(!ptr1)
fprintf(stderr, "从 ip138 获取的数据错误.\n");
else
{
char* pp = ptr1;
while(*ptr1 && *ptr1!='<')
ptr1++;
*ptr1 = 0;
ptr1 = pp;
}
printf("%s\n", ptr1?ptr1:"<null>");
InternetCloseHandle(hInetURL);
InternetCloseHandle(hInternet);
return 0;
}
效果图:
呃, 很明显, 我不在陕西省, 我也不是联通, ip138 ......
女孩不哭(QQ:191035066) @ 2012-09-10 21:04:19 @ http://www.cnblogs.com/nbsofer