如何通过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'
虽然代理无效,但浏览器会打开网址。
感谢您的帮助
答案 0 :(得分:2)
这真的不是解决这个问题的好方法,但你可以使用以下方法来获取ip。
browser.goto("http://www.whatsmyip.org/")
ip = browser.span(:id, "ip").text
正如我所说,这真的不是一种理想的方式,但我不确定是否可以访问你所使用的ip。
请注意,如果您使用上述网站,请尊重作者的意愿,不要对网站产生大量请求。如果你看那里的来源,你会发现这个评论:
请不要对机器人进行编程以使用此站点来获取您的IP。它 杀死我的服务器,这不好。只需获得一些廉价或免费的网络 托管并制作您自己的IP专用页面,为您的机器人提供支持。那么你 甚至不需要解析任何HTML,只需直接加载IP - 更好 适合所有人!!
作为网络的好公民,我们需要尊重这一点。我怀疑他每天都会受到几次点击的打击,但是如果你的脚本做了很多,那就制作你自己的反射器页面来报告你的IP。
答案 1 :(得分:2)
您不需要Watir通过代理来获取IP。您可以使用net / http,它具有更少的开销并且更容易。顺便说一下,我在这里使用了whatsmyip.com,但我不相信它是如此可靠。还有其他人包括http://whatismyipaddress.com,http://show-ip.net,http://ipchicken.com,http://www.ipaddresslocation.org,http://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