发信人: szbug(深圳虫) 
整理人: wenbobo(2002-12-27 15:47:01), 站内信件
 | 
 
 
【 在 flybird1026 的大作中提到:】
 :
 :......
 //Win32API:	
 //			WSAStartup
 //			WSACleanup
 //			gethostname
 //			gethostbyname
 
 #include <windows.h>
 #include <iostream.h>
 
 void main()
 {
 	WORD wVersionRequested;
 	WSADATA wsaData;
 	int err;
  
 	wVersionRequested = MAKEWORD(2, 2);
  
 	err = WSAStartup( wVersionRequested, &wsaData );
 	if ( err != 0 )
 	{
     	/* Tell the user that we could not find a usable */
 	    /* WinSock DLL.                                  */
     	MessageBox(NULL, "Wrong WinSock Version.", "Error", MB_OK);
 		return;
 	}
 		
 	const int iChkIpTimes = 26;
 	int localIPnums = 0;
 	char hostName[80];
 	LPHOSTENT lpHostEnt;
 	struct in_addr addr[iChkIpTimes];
 
 	for ( int i=0; i<iChkIpTimes; i++)
 	{
 		memset(&addr[i], 0, sizeof(in_addr));
 	}
 
 	if ( gethostname(hostName, sizeof(hostName)) == SOCKET_ERROR )
 	{
 		MessageBox(NULL, "Can't getting local host name.", "Error", MB_OK);
 		WSACleanup();
 		return;
 	}
 	cout << "Local host name:" << hostName << endl;
 	lpHostEnt = gethostbyname( hostName );
 	if ( !lpHostEnt )
 	{
 		MessageBox(NULL, "Bad host lookup!", "Error", MB_OK);
 		WSACleanup();
 		return;
 	}
 	for ( int i=0; i<iChkIpTimes; i++)
 	{
 		if ( lpHostEnt->h_addr_list[i] == 0 ) 
 		{
 			localIPnums = i;
 			break;
 		}
 		memcpy(&addr[i], lpHostEnt->h_addr_list[i], sizeof(in_addr));
 	}
 
 	for ( int i=0; i<localIPnums; i++)
 	{
 		cout << "Local IP Address " << i << " : " << inet_ntoa(addr[i]) << endl;
 	}
 
 	if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 )
 	{
     	/* Tell the user that we could not find a usable */
     	/* WinSock DLL.                                  */
     	WSACleanup();
     	return; 
 	}
 }
 
  ---- 深圳赛格6546
 我是一条虫,来自深圳。  
  
 I like rc model. 
 免费的动态域名解析   | 
 
 
 |