2008年01月06日

ソケット処理〜ホスト情報の取得


#include <winsock2.h>

/**
* 名前もしくはIPアドレスからホスト情報を獲得する.
* @param const char* lpszHostName : ホスト名 or IP.
* @return 成功:ホスト情報構造体のアドレス 失敗:NULL.
*/
struct hostent* getHostByName(const char* lpszHostName)
{
struct hostent* lpWorkHost=NULL;

::in_addr in;
in.s_addr = ::inet_addr(lpszHostName);
if (in.s_addr == INADDR_NONE) {
lpWorkHost = ::gethostbyname(lpszHostName);
} else {
lpWorkHost = ::gethostbyaddr(reinterpret_cast<char *>(&in), sizeof(in), AF_INET);
}
return lpWorkHost;
}

返却領域がstaticのためマルチスレッドセーフではありません。


↓で構築したVisualC++ 2005 Express Editionでコンパイルしました(ただし、Ws2_32.libを追加しています)。
http://winter-tail.sakura.ne.jp/nmap/setup.html

良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 21:31| Comment(0) | TrackBack(0) | 技術メモ(Windows C/C++)
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/9192640

この記事へのトラックバック