2016-03-20 21 views
0

bunu kullanıyorum beri net/ping mücevher nasıl kullanılacağını anlamaya çalışıyorum ve birkaç soru vardır:Yakut net-ping kullanım karışıklık

  • Neden yönetici ayrıcalıkları gerekiyor ICMP
  • Gerçek mi yoksa yanlış mı? Örneğin:

    Net::Ping::ICMP.new("127.0.0.1").ping?# <= true 
    
    #So I could do something like this: 
    ping = Net::Ping::ICMP.new("127.0.0.1") 
    if ping == true 
        puts "true" 
    else 
        puts "This shouldn't run" 
    end 
    #<= true 
    
    #or does it return packets received? 
    #so I could do something like this: 
    
    ping = Net::Ping::ICMP.new("127.0.0.1")ping? 
    if ping =~ /Received = 1/ 
        puts "true" 
    else 
        puts "This shouldn't run" 
    end 
    #<= true 
    

Şaşırdım ve nasıl çalıştığını ilişkin google şey bulmak gibi olamaz: Birisi bana yardımcı olabilir Eğer https://www.google.com/search?safe=off&btnG=Search&q=ruby+net%3A%3Aping%3A%3Aicmp+tutorial

o büyük takdir, Bu sizi

cevap

1

teşekkür nasıl yakut evals if:

irb> ping = true 
=> true 
irb > ping =~ /Received = 1/ 
=> nil 
irb> nil ? "NIL is true" : "NIL is not true" 
=> "NIL is not true" 

true eşleşmesinin sonucu nil ve if nil yanlıştır. Yani, ikinci örneğiniz her zaman "true" değerini verir (.ping?false olacaktır).

Ve 'yönetici ayrıcalıkları': ICMP paketini normal kullanıcı olarak oluşturamazsınız. SUID olan /bin/ping'u kullanmazsanız. (hangi net/ping gem kullanmayın). `.

+0

Bu harika ve hepsi bu kadar ama istediğim buydu – 13aal