[PHP-users 100] Re: リンク切れを調査する方法について
Toshikazu Yoshikawa
php-users@php.gr.jp
Tue, 19 Jun 2001 00:39:37 +0900
吉川@アンカットです。
どなたもフォローしてないようなので。
> phpからURLのリンク切れを調査したく、下記コードにてまずは、
> gethostbyname()でドメインの有効性をチェックしたいのですが、
> ドメインが存在しない場合30秒以上応答が帰ってこない場合があります。
> すぐに応答が帰ってくるような良い方法はございますでしょうか?
gethostbyname()にはタイムアウト値を設定できないので、
素直にfsockopen()でタイムアウト値を設定して接続の可否を調べる
というのではだめなのでしょうか?
確かに、たまたま調べたときは該当サーバがダウンしていたということは
判別不可ですが。
ホスト名ではなく、ドメイン名の有効性をチェックするのなら、
whoisコマンドをexec()あたりで起動して、その応答を調べるというのではどうでしょう?
> 又、URLがSSLの場合にデッドリンクをチェックを行うと
> HTTP/1.1 400 Bad Request となってしまいます。
> URLが、SSLでもデッドリンクをチェックする方法はございますでしょうか?
これはHTTPでしゃべる前にSSLハンドシェイクなどの処理が必要になりますので、
そのまま443番ポートに接続するだけではだめです。
opensslをインストールされてるなら、以下のURLが参考になると思います。
http://www.modssl.org/docs/2.8/ssl_faq.html#ToC19
opensslコマンドをpopen()などで起動すればよろしいのではないかと。
---
unCut Toshikazu Yoshikawa
mailto:toshi@uncut00.com