又一个网络基础问题(50分)

  • 主题发起人 主题发起人 sky_zzl
  • 开始时间 开始时间
S

sky_zzl

Unregistered / Unconfirmed
GUEST, unregistred user!
用CSocket类能找到自己机器的IP地址吗,怎么实现,会的朋友请讲出关键之处。
这个功能不算难吧,很多软件都可以自测IP地址。50分给出。
 
调用 Winsock API
 
#include "stdafx.h"
#include "winsock.h"
#include "stdio.h"
#pragma comment(lib,"ws2_32")
int main(int argc, char* argv[])
{
char host[1024];
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup(wVersionRequested, &wsaData);

if (!gethostname(host, sizeof(host)))
{
hostent* hostid = gethostbyname(host);

printf("%s/n", inet_ntoa(*(struct in_addr *) hostid->h_addr));
}
WSACleanup( );
return 0;
}
 
也是个方法,但有直接使用MFC的吗?
 
这还嫌麻烦呀, 楼主太懒了:)
 
sockaddr addr;
sockaddr_in addr_in;
int iSize = sizeof(sockaddr);
if(getsockname(Sock.m_hSocket, &addr, &iSize) == 0){
CopyMemory(&addr_in, &addr, sizeof(sockaddr));
inet_ntoa(addr_in.sin_addr);
}
 
接受答案了.
 
后退
顶部