URLからIPアドレスを取得

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
夏天

URLからIPアドレスを取得

#1

投稿記事 by 夏天 » 15年前

URLを入力しそのサーバーのIPアドレスを取得するというプログラムを作りたいのですが
まったくやり方がわかりません
検索をかけてもnslookupしか出てきません
DXライブラリにもそういった関数はついていないので
どうすればいいのか教えていただけないでしょうか

開発環境
OS:WindowsXP
エディタ:VisualStudio2010
ライブラリ:DXライブラリ

お豆

Re:URLからIPアドレスを取得

#2

投稿記事 by お豆 » 15年前

socketプログラミングですね。
こういった回答が適切かはわかりませんが、該当するのは下記の関数です。

この関数をキーワードに検索して見るとすぐに、サンプルコードが見つかると思いますよ。
gethostbyname
getaddrinfo

shiro4ao

Re:URLからIPアドレスを取得

#3

投稿記事 by shiro4ao » 15年前

DXライブラリから離れてしまいますが、以下のようにしてホスト名から
IPアドレスを求めることができます。

===============GetIPaddr.cpp=============================================
#include <stdio.h>
#include <winsock2.h>

int main() {
LPHOSTENT host;
WSADATA wsaData;
char hostname[/url]="www.google.co.jp"; //試しにgoogleのアドレス
IN_ADDR inaddr;
int i,addr1,addr2,addr3,addr4;

WSAStartup(2 , &wsaData);
host = gethostbyname(hostname);

printf("IPアドレス = %d.%d.%d.%d\n" ,(BYTE)*((host->h_addr_list[0])) ,(BYTE)*((host->h_addr_list[0]) + 1) ,(BYTE)*((host->h_addr_list[0]) + 2) ,(BYTE)*((host->h_addr_list[0) + 3));
WSACleanup();
return 0;
}
===================================================================

====実行結果======================================================
C:\GetIPaddr>GetIPaddr.exe
IPアドレス = 66.249.89.104
================================================================

大変申し訳ないのですが、
エラー処理はしていませんので、実行する際は確実にgoogleにアクセス出来る状態で実行してください。
配列へのポインタになっているべき理由があるはずなのですが自分にはわかりませんでした。
あと、URLからではなくてすみません。

夏天

Re:URLからIPアドレスを取得

#4

投稿記事 by 夏天 » 15年前

皆さんの協力で無事満足のいく結果が得られましたありがとうございます

>>お豆さんへ
なるほど、ソケットプログラムというのですね。
初めて聞きました^^;
まだまだ自分には覚えるべきことがたくさんあることがわかったので
ありがとうございます

>>shiro4aoさんへ
DXライブラリから離れていても大丈夫です
自分がU・R・L!U・R・L!っていっていたものはどうやらホスト名のことっぽいです
まさにこういうのを求めていました
最初エラーが出ましたがws2_32.libをリンクするのをしていなかったっぽいので
無事コンパイルが通ったのでよかったです
ありがとうございます
画像

閉鎖

“C言語何でも質問掲示板” へ戻る