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。它杀死了我的服务器,这不好。只需获得一些便宜或免费的网络托管,并制作您自己的仅 IP 页面来为您的机器人提供动力。然后您甚至不必解析任何 html,只需直接加载 IP - 对每个人都更好!

作为网络的好公民,我们需要尊重这一点。我怀疑他会因为每天点击几下而感到不安,但如果您的脚本经常这样做,请制作您自己的反射器页面,将您的 IP 报告给您。

于 2012-04-18T13:31:46.510 回答
2

您不需要 Watir 通过代理来获取 IP。你可以使用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 回答