作者Powernow (PowerNow!)
看板C_and_CPP
標題Re: [問題] C winsock2 server IP
時間Wed Nov 11 22:36:57 2009
這段code或許可以參考一下,條件是server要先知道自己的hostname
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#pragma comment(lib, "Ws2_32.lib")
int main(int argc, char *argv[])
{
WSADATA wsaData;
DWORD addr;
struct in_addr addr_i;
struct hostent *he;
if (argc < 2) return 0;
if (WSAStartup(MAKEWORD(1,1), &wsaData)!=0) return -1;
if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE (wsaData.wVersion) != 1) {
WSACleanup();
return -1;
}
// Resolve hostname
if ((addr = inet_addr(argv[1])) == INADDR_NONE) {
he = gethostbyname(argv[1]);
if (he == NULL) {
WSACleanup();
return 0;
}
addr = *(DWORD *)(he->h_addr_list[0]);
addr_i.s_addr = addr;
}
printf("%08X\n", addr);
printf("%s", inet_ntoa(addr_i));
WSACleanup();
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.128.220.50
推 whccpl:如果從txt用getline讀入 在輸出檔案 要怎麼寫呢? 11/12 10:48
→ whccpl: 讀入hostname 在輸出IP至檔案 11/12 10:56