2016-04-14 13 views
0

ドメインのIPアドレスとそのドメインのサーバー情報を取得して、サーバー情報がApache、nginixなどであるかどうかを確認します。ドメインのIPアドレスとバックサーバーの情報を取得する

私はIPを取得する方法についてはかなり良いアイデアを持っていますが、何らかの理由でそれが出力正しい情報はありません。私がダウンして、元のURLを除去する必要があるため

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?

http://www.prairiegraphicdesign.com 

答えて

0
URLをだ

、およびgetaddressはそれらをどうするかわかりません。処理できるのは、 "example.com"のような完全修飾ドメイン名(FQDN)です。

代わりに、あなたはそれを分割する必要があります。

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" 
+0

理にかなっているので、私は後にソケットとアドレスを解決できましたそれは正しく解析されていますか? – JasonBorne

+0

'Socket'ライブラリを含め、それを解決するにはいくつかの方法があります。詳細については、[Net :: DNS](https://github.com/bluemonk/net-dns)を試してみてください。ここではAタイプだけでなく、レコードのリストも表示されます。 – tadman

関連する問題