このスクリプトで外のサイトからアクセスすると、通るのですが、同じサーバ内からだと通りません。
status code 403がかえってきます。同じサーバ内からは、Basic 認証はずすと通ります。
このような現象の原因が何か考えられるでしょうか?
#!/usr/bin/ruby
require "rubygems"
require "open-uri"
require "hpricot"
require 'mechanize'
require 'logger'
url = "http://hoge.com"
agent = WWW::Mechanize.new
agent.user_agent = 'FireFox'
agent.auth("yama","kawa")
agent.log = Logger.new($stdout)
page = agent.get(url)
puts page.body
ローカルのWebサーバをNATか何かで公開してると言うことですか?
であれば,そうなる可能性はありますね.
#最近のルータだとちゃんとみれたりするみたいですが.
サーバのローカルIPをアドレスに打てば見れないですか?
もしくは,プロキシを介せば見れるはずです.
サーバ側の情報がないので推測ですが・・。
Basic認証をはずすときに他の設定も外れてませんか?
例えば、(サーバがApacheだとしたら)Options Indexesとか。
せめて403の原因が認証のエラーなのか、それ以外の原因なのかがわかればよいのですが。
外部から、まったく同じスクリプトで通っています。
PHP で同様のスクリプトを組んで問題ないのでなんだろうと思っています。
いえ、ローカルでも 同じスクリプトで、Basic 認証はずと見れます。それから、
php で同様のスクリプトをつくるといきますので、IP制限の問題ではないと思われます。