如何获取域的IP地址和该域的服务器信息,以判断服务器信息是否是Apache、nginix等?
对于如何获取IP,我有一个很好的想法,但出于某种原因,它无法输出正确的信息:
require 'socket'
IPSocket::getaddress('http://www.prairiegraphicdesign.com/phpStuff/week2Shopping/cartAdd.php?action=add&id=4')
#<= irb(main):001:0> require 'socket'
# => true
# irb(main):002:0>IPSocket::getaddress('http://www.prairiegraphicdesign.com/phpStuff/week2Shopping/cartAdd.php?action=add&id=4')
# SocketError: getaddrinfo: No such host is known.
# from (irb):2:in `getaddress'
# from (irb):2
# from C:/Ruby22/bin/irb:11:in `<main>'这是因为我需要将URL降到原来的URL吗?
http://www.prairiegraphicdesign.com发布于 2016-04-14 20:04:30
这是一个URL,getaddress不知道如何处理这些内容。它所能处理的就是像"example.com“这样的完全限定域名。
相反,你需要打破它:
require 'uri'
uri = URI.parse('http://www.prairiegraphicdesign.com/phpStuff/week2Shopping/cartAdd.php?action=add&id=4')
uri.host
#=> "www.prairiegraphicdesign.com"如果你愿意的话你可以把它解析到一个地址。
至于正在运行的服务器软件,您需要向服务器发出HTTP请求并从响应中提取正确的标头:
require 'net/http'
res = Net::HTTP.get_response(uri)
res['server']
#=> "Microsoft-IIS/6.0"https://stackoverflow.com/questions/36632202
复制相似问题