• ベストアンサー

サイトのIPアドレスを取得

お世話になっております。 POSTされたURL(http://www.○○.com/)から、そのサイトが運営されているウエブサーバのIPを取得したいと思っています。 dns_get_record()この関数を用いることで取得できるところまで分かって来たのですが、実際にIPを取得するスクリプトが上手くかけずに、スクリプトを設置しているサーバーのIPアドレスが表示されてしまいます。 $url = $_POST["url"]; $result = dns_get_record($url); print_r($result); お恥ずかしいのですが、このあと、IPだけを抜き出そうとすると、このスクリプトの設置してあるサーバのIPになってしまうようです。 お忙しいなか恐縮ですが、アドバイスのほど宜しくお願い申し上げます。

  • PHP
  • 回答数2
  • ありがとう数8

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

============結論================ 再現しない。 ============使ったコード========= <?php /* 当然正しく実行されない。DNSレベルではhttp登場しない。一応自分の知識の復習用。 型チェックしない言語だし実行時までエラーか判らないのが非常に辛い。 これは、エラーと言うか警告で、型どうこうよりももっと関数の仕様が悪い。 */ $result = dns_get_record("http://www.google.com/",DNS_A); print_r($result); /* これは正常 DNSラウンドロビンなどがあるので 当然帰ってくるIPv4アドレスは */ $result = dns_get_record("www.google.com",DNS_A); print_r($result); /* ここでは試さないけど、ドメイン名だけを取るのにparse_url関数がある…あるけど…けど… マニュアルによると、parse_url関数はvalidateしない。やってくれ、頼むから>関数 */ /* hostname should be a valid DNS hostname such as "www.example.com". Reverse lookups can be generated using in-addr.arpa notation, but gethostbyaddr() is more suitable for the majority of reverse lookups マニュアルによると、IPアドレスからホスト得るにはgethostbyaddr関数っていうより適した関数があります、だそうだ。 今回はその逆。gethostbyname関数も一応試しておこう。 */ /* 結果に示すが、どうやら先頭の一つだけ取ってくるらしい。多分。*/ print_r(gethostbyname("www.google.com")); ?> ==========コードの出力結果================ <br /> <b>Warning</b>: dns_get_record() [<a href='function.dns-get-record'>function.dns-get-record</a>]: Dns Query failed in <b>C:\Environment\Users\WWW\OKWave\Q5606391\Q5606391-1.php060000</b> on line <b>2</b><br /> Array ( [0] => Array ( [host] => www.l.google.com [type] => A [ip] => 66.249.89.99 [class] => IN [ttl] => 175 ) [1] => Array ( [host] => www.l.google.com [type] => A [ip] => 66.249.89.103 [class] => IN [ttl] => 175 ) [2] => Array ( [host] => www.l.google.com [type] => A [ip] => 66.249.89.104 [class] => IN [ttl] => 175 ) [3] => Array ( [host] => www.l.google.com [type] => A [ip] => 66.249.89.147 [class] => IN [ttl] => 175 ) ) 66.249.89.99

a4_chapp
質問者

お礼

himajin100000様 早速のアドバイスをありがとうございます。 ソースまで提示していただき、色々と考えさせられました。 ご親切なアドバイスをありがとう御座いました。 himajin100000さまのアドバイスのもと解決しましたことをご報告いたします。ありがとう御座いました!

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

URLじゃなくて、ホスト名を与えてください。 $x = parse_url($url); $result = dns_get_record($x["host"]);

a4_chapp
質問者

お礼

notnotさま 早速のアドバイスをありがとうございます。 すみません。$url をホスト名に直したものを実行しても、配列から抜き出すとスクリプトの設置してあるサーバのIPを取得してしまうという状況でした。私の説明不足というかソースがおかしいですね。すみませんでした。 ご親切なアドバイスに感謝いたします。

関連するQ&A

  • dnsによるアドレス取得

    URIからのアドレス取得で、問い合わせDNSサーバを指定してのdns_get_recordに相当することをPHPで行なうことはできるでしょうか?

    • 締切済み
    • PHP
  • [PHP] 任意のDNSでIPアドレスを取得

    PHPスクリプトにてホスト名からIPアドレスを取得する際は getenv()関数を用いるのが一般的だと思うのですが、 名前解決を行うDNSを指定して取得する方法はありますでしょうか。 具体的には、コマンドプロンプトのnslookup時に、 対話形式で「server DNS」で指定できる様な事を PHPのスクリプトでも実現したいです。 PEARなどのライブラリを使用する方法でもOKですが、 導入予定のサーバーが共用レンタルサーバーの為、 サーバーにソフトをインストールする等の方法は導入が難しいです。 以上、宜しくお願い致します。

    • 締切済み
    • PHP
  • 自動取得のIPアドレスについて教えてください

    パソコン:Windows XP HE SP3x5台、Windows Vista Home Premiumx1台 プリンタ:CANON 複合機 MP630、RICHO モノクロレーザ NX70 プリントサーバ:BUFFALO LPV3-U2S、LPV3-TX1 DHCPサーバ(無線ルーター):WHR-HP-G54 パソコン、プリントサーバのIPアドレスはDHCPによるは自動取得にしてあるのですが、 知人から自動取得はIPアドレスが変わるから手動取得がいいと言われました。 いろいろ調べると、ある人は「DHCPサーバの電源をOFFするとIPアドレスが変わる。 パソコン、プリントサーバは電源OFFでもIPアドレスは変わることはない」と言われ、 また別の人は「パソコン、プリントサーバは電源OFFでもIPアドレスは変わる」と言われました、 どちらが本当ですか? また参考URLがあれば教えていただけないでしょうか?

  • IPアドレスでアクセスできないサイト

    複数のドメイン名を1つのIPアドレスに割り当てたDNSにおける挙動を教えて下さい。 ブログで有名なjugemなどでは、http://ユーザ名.jugem.com/ というURLによってサイトにアクセスすることができます。 これはおそらくダイナミックDNS(←詳細は知らないのですが)で 複数のドメイン名を1つのIPアドレスに割り当てている、 ということだと認識しています。 このようなサイトに対し、 nslookupしてIPアドレスでアクセスしようとすると、 うまくいきません。 これはユーザ名にあたる情報が無いので、そりゃそうかな、と思っていたのですが、 DNSの仕組みを考えると不思議に思います。 ユーザのPCからURLでアクセスする場合でも、 c場合はどうなるのでしょうか? 例えば、ユーザPCの近くに、サイト(JUGEM)が知らないDNSサーバがあったとして、 URLとIPアドレスの対応をキャッシュしていたとすると、 同様にIPアドレスでのアクセスができない、ということにはならないのでしょうか?

  • IPアドレス取得について

    いつも大変お世話になっております。 IPアドレス取得についてご質問がございます。 会社のPCでネットワークに繋げれないPCがありまして、修理をしているのですが、下記理由で困っています。 1.普段使用している場所でネットに接続出来ない。ip configでもIP取得していない事を確認。 2.修理場所(私の作業場)では、ネットに繋がる(当然IP取得している) 3.「1」の場合、ケーブルが考えられるが、念のためケーブルを交換してもらっている(本当にやっているかどうか不明ですが・・・) 4.ケーブルを挿す場所のランプは緑点灯とオレンジ点滅(正常品と比べて相違はなかったと思う) 5.DHCPを適当な数字にして、WINS・DNSを指定しない設定にしてもIP取得もネット接続も可能。 そこで質問ですが、IP自体を取得できない場合は、物理的に接続が出来ていない事が原因なのでしょうか。 PCの設定(デフォルトゲートウェイやDNS・WINSサーバーの指定)は間違っていても関係ないのでしょうか。 (IPアドレスはDHCPで割り振っています。空きも十分あります) NICの故障で、たまたま今繋がっているとしたら、また現象が起きますので、原因特定になるような確認作業など ご存知の方がいらっしゃいましたらご教授お願い致します。

  • PS3をインターネットに繋ごうとしたのですが、IPアドレスは取得できる

    PS3をインターネットに繋ごうとしたのですが、IPアドレスは取得できるのですがDNSサーバーエラーが出てきます。 前に質問して、PCと同じDNSアドレスならいけるのでは?という回答をくださったのでやってみたんですが、無理でした。 ネット回線はモデムだけで繋げてます。

  • グローバルIPアドレスを固定してもDDNSって

    DDNSって、固定IPアドレスとDNSサーバーが無い人の為の物なのですよね、 でしたら、DNSサーバーが無い人でWEBサーバーにグローバルIPアドレスを固定して、 運営したい場合、ドメインと関連付けるのって、DDNSを使えるのでしょうか?

  • IPアドレス、DNS

    インターネットプロトコル(TCP/IP)のプロパティで、 (1)IPアドレスを自動的に取得する (2)次のIPアドレスを使う (3)DNSサーバーのアドレスを自動的に取得する (4)次のDNSサーバーのアドレスを使う 上記を選択すると思いますが、 (2)の次のIPアドレスを使う というのは IPアドレスを固定する場合は、プロバイダなどの固定IPアドレスのサービスを使うと思うのですが、 ここで固定にするというのはどういことになりますか?

  • 有効なIPアドレスが取得できません

    PanasonicのレッツノートのCF-W8を使用しています。 スイッチングハブからのLANケーブルを挿しても、 正しいIPアドレスを取得してくれません。 具体的には、他のPCのIPアドレスは、全て192.168.100.*** であるのに対して、CF-W8だけがなぜか192.168.11.3という アドレスを拾ってしまいます。 ブラウザに192.168.11.1と入力すると、 BUFFALOの無線ルーターの設定画面となります。 このようなルーターは持っていませんし、 レッツノートの無線アダプタのスイッチはOFFにしてあります。 また、ローカル接続のTCP/IPのプロパティは、 IPアドレス・DNSサーバともに自動で取得するようにしてあります。 今日の正午頃より急にこんな状態となりました。 OSはWinXPProのSP3です。 どなたかお助けください。よろしくお願いいたします。

  • IPアドレス&URLについて

    『 URL(ホームページアドレス)は、DNSで名前解決をして結果的には「IPアドレス」に変換される。』 ------------------------------------------------ 「IPアドレスとは、ネットワーク上のコンピュータを特定するもの」と聞いておりますが、 URLで言うところのIPアドレスとの兼ね合いが理解できません。 ------------------------------------------------ ホームページが置かれた「WEBサーバ」を、そのページのIPアドレスだとすれば、 ホームページごとに「WEBサーバ」があると解釈するのでしょうか? 的を得ない質問かもしれませんが、よろしくお願いいたします。

専門家に質問してみよう