首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取域的IP地址和后台服务器信息

获取域的IP地址和后台服务器信息
EN

Stack Overflow用户
提问于 2016-04-14 19:25:38
回答 1查看 57关注 0票数 0

如何获取域的IP地址和该域的服务器信息,以判断服务器信息是否是Apache、nginix等?

对于如何获取IP,我有一个很好的想法,但出于某种原因,它无法输出正确的信息:

代码语言:javascript
复制
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吗?

代码语言:javascript
复制
http://www.prairiegraphicdesign.com
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-14 20:04:30

这是一个URL,getaddress不知道如何处理这些内容。它所能处理的就是像"example.com“这样的完全限定域名。

相反,你需要打破它:

代码语言:javascript
复制
require 'uri'

uri = URI.parse('http://www.prairiegraphicdesign.com/phpStuff/week2Shopping/cartAdd.php?action=add&id=4')

uri.host
#=> "www.prairiegraphicdesign.com"

如果你愿意的话你可以把它解析到一个地址。

至于正在运行的服务器软件,您需要向服务器发出HTTP请求并从响应中提取正确的标头:

代码语言:javascript
复制
require 'net/http'

res = Net::HTTP.get_response(uri)

res['server']
#=> "Microsoft-IIS/6.0"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36632202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档