2

WatirでブラウザIPを取得するにはどうすればよいですか?プロキシを使用していますが、正しく機能しているかどうかを確認したいと思います。プロキシが機能している場合、おそらく他の方法がありますか?

これが私の現在のコードです:

profile = Selenium::WebDriver::Firefox::Profile.new
profile.proxy = Selenium::WebDriver::Proxy.new :http => 'my.proxy.com', :ssl => 'my.proxy.com'
browser = Watir::Browser.new :firefox, :profile => profile
browser.goto 'http://someurl.com'

プロキシが機能していなくても、ブラウザはURLを開きます。

手伝ってくれてありがとう

4

2 に答える 2

3

これは、これを回避するための適切な方法ではありませんが、次の方法で IP を取得できます。

browser.goto("http://www.whatsmyip.org/")
ip = browser.span(:id, "ip").text

私が言ったように、それは本当に理想的な方法ではありませんが、watir が現在の IP にアクセスできるかどうかはわかりません。

上記のサイトを使用する場合は、作成者の意向を尊重し、サイトに対して大量のリクエストを生成しないでください。そこのソースを見ると、次のコメントがあります。

このサイトを使用して IP を取得するようにボットをプログラムしないでください。それは私のサーバーを殺し、それは良くありません。安価または無料の Web ホスティングを入手して、独自の IP 専用ページを作成し、ボットを強化してください。そうすれば、HTML を解析する必要さえなくなり、IP を直接ロードするだけで済みます。

ネットの善良な市民として、私たちはそれを尊重する必要があります。1 日に数件のヒットで彼が動揺することはないと思いますが、スクリプトがこれを頻繁に行っている場合は、独自のリフレクター ページを作成して、IP を報告してください。

于 2012-04-18T13:31:46.510 に答える
2

IP を取得するために、Watir がプロキシを経由する必要はありません。オーバーヘッドが少なく簡単な net/http を使用できます。ところで、ここで whatsmyip.com を使用しましたが、それほど信頼できるとは思いません。他にもhttp://whatismyipaddress.comhttp://show-ip.nethttp://ipchicken.comhttp://www.ipaddresslocation.orghttp://www.myipaddress.com/などがあります。 show-my-ip-address/http://www.lawrencegoetz.com/programs/ipinfo/http://www.find-ip-address.org

require 'net/http'
uri = URI("http://automation.whatismyip.com/n09230945.asp")
Net::HTTP::Proxy(proxyhost, proxyport, proxyuser, proxypassword).start(uri.host) do |http|
    req = Net::HTTP::Get.new(uri.path=='' ? '/' : uri.path)
    @ip = http.request(req).body.scan /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
end
于 2012-04-18T14:48:14.280 に答える