2016-04-14 16 views
0

Sunucu bilgisinin Apache, nginix, vb. Olup olmadığını öğrenmek için, bir etki alanının IP adresini ve söz konusu etki alanının sunucu bilgilerini nasıl alırsınız? Etki alanı ve arka sunucu bilgilerinin IP adresi alma

Ben IP almak için nasıl bir iyi bir fikrim var, ama nedense o çıktısı doğru bilgiyi olmaz: Ben orijinaline aşağı URL'yi şerit gerektiğinden

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>' 

bu mu URL?

http://www.prairiegraphicdesign.com 

cevap

0
bir URL var

ve getaddress olanlar ne yapacağını bilmiyor. Tüm ele alabileceği "example.com" gibi tam nitelikli alan adları (FQDN).

yerine bunu patlak gerekir: İsterseniz bir adrese bu çözebilirsiniz

require 'uri' 

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

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

.

Çalışıyorsa ne sunucu yazılımı gelince, sunucuya bir HTTP isteği yapmak ve yanıttan doğru başlığını ayıklamak gerekir:

mantıklı
require 'net/http' 

res = Net::HTTP.get_response(uri) 

res['server'] 
#=> "Microsoft-IIS/6.0" 
+0

, bu yüzden soket ile adresini sonra çözebilecek doğru ayrıştırıldı mı? – JasonBorne

+0

"Soket" kütüphanesi de dahil olmak üzere, onu çözmek için bir çok yol var. Daha fazla ayrıntı için [Net :: DNS] 'i (https://github.com/bluemonk/net-dns) deneyebilirsiniz, burada yalnızca A tipi değil, kayıtların bir listesini verecektir. – tadman