• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlのソケット通信について)

perlのソケット通信でwebブラウザーを製作中ですが、特定のサイトが閲覧できません

このQ&Aのポイント
  • perlのソケット通信でwebブラウザーのようなものを製作中ですが、特定のサイトが閲覧できず、NotFoundかDNSエラーになります。
  • 参考にしたサンプルの他に追加すべき項目はあるでしょうか?よろしくお願いします。
  • 現在の構文は以下の通りです。

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

  • ベストアンサー
noname#227760
noname#227760
回答No.3

AT_MARKさん 私も実はとほほさんのsocketのソースについて別のカテゴリで質問をさせていただいていたのですが、さきほど、ソースと一緒にくっついてきてしまうヘッダ情報を削除したソースを書いてくださった方がいらっしゃいますので、よろしければ参考にしてみてください。

参考URL:
http://okweb.jp/kotaeru.php3?q=1097113
AT_MARK
質問者

お礼

あ、分かりました! gethostbynameでIPアドレスを取得しているからいけなかったようです。 各ドメインをPINGでIPアドレスを調べて直接アクセスしたところ、同じ結果になりました。 今は1つのサーバーに複数のドメインがあったりする(バーチャルドメインって言うのかな?)ためにこういう結果になったのかもしれません。。

AT_MARK
質問者

補足

ソースを修正しつつ、試してみましたが結果は同じでした。。 それと、ソースを修正しているときに気が付いたのですが、 #!/usr/bin/perl print "Content-type:text/html\n\n"; $addr = (gethostbyname("www.yahoo.co.jp"))[4]; $name = pack("S n a4 x8", 2, 80, $addr); print "<HR>$addr,$name"; 上のようにソース小さくすると、$addr,$nameがうまく取得できていないようなんです。エラーと何か関係があるのでしょうか。。

その他の回答 (2)

noname#227760
noname#227760
回答No.2

No.1の補足を見ていて思ったのですが、 PHPファイルであるということに問題はないでしょうか? 3つのサイトの例を挙げていただきましたが、Yahoo!の場合は、トップページがindex.htmlのようですが、xxx.xrea.comの場合はindex.php、OK Webは、index.php3ですよね?PHPのときだけうまく行っていないように見えます。 以下は私の推測です。 とほほさんのPerlソースを使ってページを取ってくると、ページのソースの前に余計な文がくっついてきませんか?PHPは、それを実行することによってHTML文を出力する言語(ですよね?)ですので、くっついてきた余計な文がPHPではないため、エラーを起しているのではないでしょうか。 全然違っているかもしれません。 参考程度に。

AT_MARK
質問者

補足

自分のサイトでも表示できない状態(DNSエラーのようなもの)なので、関係無いようです。 YAHOOは表示されたのは、もしかしたらDNSエラーで転送されていたのかもしれません。。

noname#227760
noname#227760
回答No.1

AT_MARKさん こんにちは。 同じとほほさんのBBSで、こんな質問が出ていました。 socket(S, 2, 2, 0); ← 真ん中の数字が1ではなく2 で動いたという内容です。 http://tohoho.wakusei.ne.jp/lng/199907/99070250.htm それぞれの数字の意味も載っていますよ。 とほほさん自身も、 http://tohoho.wakusei.ne.jp/wwwperl2.htm#socket の解説で、上記のように試してみることをお勧めしています。 試してみてはいかがですか?

AT_MARK
質問者

補足

ありがとうございます。 socket(S, 2, 2, 0);に変更したところ、真っ白になり動作しませんでした。 現在の状況は www.xrea.com→www.value-domain.comのページ内容になる HTTP/1.1 200 OK Date: Sun, 21 Nov 2004 04:42:26 GMT Server: Apache Connection: close Content-Type: text/html; charset=EUC-JP www.yahoo.co.jp→(見た目上は)正常に表示される HTTP/1.1 200 OK Date: Sun, 21 Nov 2004 04:43:41 GMT P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV" Cache-Control: private Pragma: no-cache Connection: close Content-Type: text/html;charset=euc-jp okweb.jp→301 Moved Permanentlyとなる。 HTTP/1.1 301 Moved Permanently Date: Sun, 21 Nov 2004 04:44:28 GMT Server: Apache Location: http://okweb.jp/ Connection: close Content-Type: text/html; charset=iso-8859-1

関連するQ&A