2012-01-19 9 views
5

Powinno być możliwe wysyłanie i odbieranie pakietów ICMP przy użyciu biblioteki gniazd Ruby, ale nie widzę w tym żadnej dobrej dokumentacji.Jak zaimplementować ping ICMP w Rubim, używając tylko standardu biblioteki gniazd?

Nie chcę używać net-ping, icmp, ping i wszystkich innych bibliotek, które zawiedzione są z powodu problemów z wieloma platformami, wymagają dewelopera devkit i niestandardowego, które zawodzą podczas procesu kompilacji, są pomijane i nie były aktualizowane od dłuższego czasu i/lub są po prostu ogólnie błędne.

Czy ktoś ma dobrą dokumentację, jak to osiągnąć? Chcę wysyłać odpowiedzi echa ICMP, a nie pakiety TCP lub UDP.

+1

Czy biblioteka gniazd ruby ​​umożliwia określenie protokołu ICMP? Prawdopodobnie jest ściśle oparty na gniazdach "unix". –

+0

No cóż, mogę .. 'sock = Socket.new (Socket :: PF_INET, Socket :: SOCK_RAW, Socket :: IPPROTO_ICMP)' – Beaon

+0

Z dokumentacją jednak nie jest jasne, skąd się tam udać. Istnieje mnóstwo dokumentacji, jak wykonać połączenie UDP lub TCP. Nic na temat korzystania z kawałka ICMP. – Beaon

Odpowiedz