获取浏览器IP(使用代理)

时间:2012-04-18 07:43:00

标签: watir watir-webdriver

如何通过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'

虽然代理无效,但浏览器会打开网址。

感谢您的帮助

2 个答案:

答案 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.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