织梦CMS - 轻松建站从此开始!

罗索

如何得到本机公网IP C语言实现

jackyhwei 发布于 2010-08-17 09:14 点击:次 
落鹤生:C语言实现得到本机公网IP,创建一个Socket,然后连接www.ip138.com/ip2city.asp这个网页,这个网页会返回你的公网IP。
TAG:

  1. // 
  2.  
  3. #include "StdAfx.h" 
  4. #include <Winsock2.h> 
  5. #include <conio.h> 
  6. #include <stdio.h> 
  7.  
  8. //Client 
  9. #pragma comment (lib,"ws2_32.lib") 
  10.  
  11. int main(int argc, char* argv[]) 
  12.     //版本协商 
  13.     WORD wVersionRequested; 
  14.     WSADATA wsaData; 
  15.     int err; 
  16.     wVersionRequested = MAKEWORD(1,1); //0×0101 
  17.     err = WSAStartup(wVersionRequested,&wsaData); 
  18.     if(err!=0) 
  19.     { 
  20.         return 0; 
  21.     } 
  22.      
  23.     if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)   
  24.         //wsaData.wVersion!=0×0101 
  25.     { 
  26.         WSACleanup(); 
  27.         return 0; 
  28.     } 
  29.     //创建连向服务器的套接字 
  30.     SOCKET sock = socket(AF_INET,SOCK_STREAM,0); 
  31.     //创建地址信息 
  32.     SOCKADDR_IN hostAddr; 
  33.     hostAddr.sin_addr.S_un.S_addr = inet_addr("219.153.15.76"); 
  34.     hostAddr.sin_family = AF_INET; 
  35.     hostAddr.sin_port = htons(80); 
  36.     //连接服务器 
  37.     connect(sock,(sockaddr*)&hostAddr,sizeof(sockaddr)); 
  38. char szBuffer[1024] = {"GET /ip2city.asp HTTP/1.1\r\n
  39. Host:www.ip138.com\r\nConnection:Close\r\n\r\n"}; 
  40.     //向服务器发送数据 
  41.     send(sock,szBuffer,strlen (szBuffer),0); 
  42. //从服务器获得数据 
  43.     recv(sock,szBuffer,1024,0); 
  44. printf("%s\n",szBuffer); 
  45.  
  46.     closesocket(sock); 
  47.  
  48. _getch(); 
  49.  
  50. return 0; 

 

(秩名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201008/9982.html]
本文出处:网络博客 作者:秩名
顶一下
(2)
66.7%
踩一下
(1)
33.3%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容