Bagaimana saya bisa menentukan apakah mesin online tanpa menggunakan ping?

12

Saya dulu menggunakan aplikasi yang bisa melakukan ping atau mungkin menjalankan pemindaian port pada mesin meskipun mesin itu dikonfigurasi untuk tidak mengizinkannya.

Saat ini saya mencoba untuk melakukan ping mesin jarak jauh pada WAN kami, tetapi saya telah mengkonfigurasi mesin untuk tidak mengizinkan ping. Apakah ada sesuatu yang mirip dengan ping yang bisa saya gunakan?

Sekali lagi, ini sebuah mesin yang terletak di kota lain yang merupakan bagian dari wan kami.

cop1152
sumber

Jawaban:

4

Jika Anda menggunakan XP / 2003 + (ini termasuk Vista / 2008/7 ), maka Anda dapat menggunakan Win32_PingStatus . Mesin-mesin yang menjalankan kode skrip adalah satu-satunya sistem yang perlu XP / 2003 +, dan berfungsi seperti menggunakan Ping.exe, hanya saja itu tidak menggunakan ping.exe sehingga harus bertindak sebagai celah untuk pengaturan keamanan Anda yang tidak mengizinkan eksekusi ping.exe.

strComputer = "192.168.1.1"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery _
    ("Select * from Win32_PingStatus " & _
        "Where Address = '" & strComputer & "'")
For Each objItem in colItems
    If objItem.StatusCode = 0 Then 
        WScript.Echo "Reply received."          
    End If
Next

Lihat artikel Scripting Guy untuk info lebih lanjut tentang cara menggunakan Win32_PingStatus:

http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept04/hey0914.mspx

mrTomahawk
sumber
2
Pemahaman saya adalah bahwa host jarak jauh telah dikonfigurasi untuk tidak menanggapi paket ICMP Echo Request, bukan bahwa ping.exe di localhost telah dinonaktifkan. Dengan demikian ini tidak akan melakukan sesuatu yang berbeda untuk menjalankan ping.exe, yang artinya, tidak ada.
David Pashley
15

Anda dapat melakukan telnet ke port tcp terbuka pada mesin. Misalnya, jika mesin adalah server web, dan memiliki port 80 terbuka, cukup:

telnet ip.ad.dre.ss 80

Ini akan berfungsi bahkan pada port terenkripsi (meskipun Anda tidak akan dapat memahami data)

Beberapa port lain untuk dicoba adalah:

  • 443 untuk server https
  • 22 untuk ssh

(ada daftar port / layanan di / etc / services di mesin linux)

Brent
sumber
6

Ping adalah ICMP, jika Anda memblokir ICMP, Anda tidak dapat melakukan ping.

Anda mungkin masih dapat menguji port TCP atau UDP jika Anda menerima koneksi TCP / UDP.

Jika Anda menjalankan pengujian pada wadah, yang kekurangan ping, nc, telnet, dan alat-alat lain, Anda dapat menggunakan trik ini:

(echo >/dev/tcp/${host}/${port}) &>/dev/null && echo "open" || echo "closed"

Ini akan mencoba untuk terhubung melalui tcp / udp melalui perangkat (wow, saya tahu) dan gema "terbuka" jika port terbuka atau "ditutup" jika ditutup.

Ini akan menggantung beberapa saat sebelum menggema "tutup" ketika itu terjadi.

David Rz Ayala
sumber
2
Keren saya harus menggunakan ini di docker pod ;-)
Amorphous
4

Jalankan agen SNMP pada mesin jarak jauh, dan gunakan manajer untuk membaca salah satu nilai dari MIB standar.


sumber
3

Jika Anda tidak memiliki firewall dan router di jalan, yaitu, jika Anda berada di segmen yang sama dengan host yang Anda coba periksa - sebagian besar solusi di atas adalah imho yang lengkap.

Tidak masalah apa port yang Anda hubungkan, dan pada kenyataannya, jika Anda terhubung ke port yang tidak mungkin memiliki layanan berjalan, Anda bisa menyelesaikan pekerjaan tanpa terdeteksi.

Bagaimana?

Anda dapat menggunakan alat apa pun yang Anda suka, tetapi kami hanya dapat menggunakan telnet ...

% telnet <host> 313373
Trying 10.211.55.3...
telnet: connect to address 10.211.55.3: Connection refused
telnet: Unable to connect to remote host
%

Ini harus terjadi segera, kecuali jika tuan rumah menjatuhkan paket. Apa yang sebenarnya terjadi adalah bahwa tumpukan TCP / IP pada host mengirimkan Anda kembali segmen TCP dengan set bit RST - yaitu mengakhiri paket SYN Anda.

Fakta bahwa Anda menerima paket RST berarti memang ada host di ujung yang lain, dan sebagai bonus - Anda telah melakukannya tanpa terdeteksi (TCP / IP tidak memiliki aplikasi lapisan atas untuk berbicara tentang koneksi ini) .

Daripada telnet, saya mungkin akan menggunakan sesuatu seperti scapy, menulis sesuatu yang mencari bendera RST dan beri tahu Anda.

Hanya untuk menyelesaikan ini, jika tidak ada host pada IP yang Anda coba - itu akan menggantung sebentar, dan batas waktu - hal yang sama yang akan terjadi jika host penerima memiliki firewall dengan drop filter.

Jika firewall terlibat, maka seperti yang disarankan orang lain, gunakan alat seperti nmapdan apa pun.

Xerxes
sumber
3

Jika Anda memiliki akses ke mesin lain pada LAN yang sama dengan mesin target Anda, Anda dapat menggunakan arping .

Arping bekerja dengan mengirimkan paket ARP yang menargetkan mesin, ini bekerja dengan sempurna karena Anda tidak dapat memblokir paket arp jika Anda ingin menggunakan jaringan (well, Anda dapat mengatur tabel arp statis di mana-mana: D) Tetapi kerugiannya adalah Anda harus berada di dalam LAN yang sama dengan target arping Anda.

hayalci
sumber
1

Apakah ada layanan yang tersedia di mesin? Salah satu cara untuk melihat apakah ada mesin adalah dengan menggunakan klien telnet untuk menghubungkannya, tetapi mengubah port yang harus Anda tekan.

Jadi katakanlah mesin menjalankan MS SQL yang berjalan pada port 1433 secara default. Anda menggunakan perintah berikut

telnet machine-name-address 1433

Jika Telnet menghubungkan mesin dan menjalankan, Bukan berarti itu berjalan dengan baik, tetapi tetap mendengarkan port itu

Brettski
sumber
1

untuk saya masuk seq 1 65535; lakukan tcpconnect -v remotehost $ i; selesai

Vish
sumber
tidak tahu tentang tcpconnect. Untuk orang yang mencari untuk itu: packages.debian.org/tcputils
serverhorror
1

nmap -T5 -sS -P0 ho.st.ip.addr Itu akan melihat port apa yang tersedia pada mesin itu .. Merekomendasikan menginstal cygwin jika Anda menjalankan pada windows atau tidak memiliki akses ke mesin linux.

Dan
sumber
1

pemindai jaringan softperfect.

google untuk itu.

Saya menggunakannya banyak. Bagus sekali

therulebookman
sumber
1

Google untuk "nmap". Saya menggunakan ini sepanjang waktu. Sangat bagus untuk memverifikasi firewall Anda beroperasi seperti yang diharapkan juga. Ditambah lagi, saya yakin itu direferensikan dalam film Matrix yang membuatnya sangat luar biasa.

Neobyte
sumber
1

Anda dapat meminta mesin mengirimkan snmp trap (paket) satu menit sekali ke monitor jarak jauh dan membuat aturan untuk memantau bahwa Anda menerima perangkap tersebut setiap menit.

Stuart Woodward
sumber
1
Ini memang jawaban yang bagus dan sangat benar. SNMP cukup rendah dan dapat dikonfigurasi pada sistem windows. Ini satu-satunya alternatif untuk ICMP dan pada kenyataannya secara rutin digunakan oleh insinyur jaringan untuk memonitor router dan sistem melalui WAN dan LAN
Abhishek Dujari
1

Solusi sederhana untuk masalah ini adalah menggunakan utilitas netcat. Hanya prasyarat untuk skenario ini adalah bahwa seseorang harus menyadari setidaknya satu port yang terbuka pada mesin jarak jauh itu.

nc -nv ip_address port_number

Perintah di atas akan memberikan hasil, yang akan menentukan apakah port tersebut terbuka atau tidak dan karenanya ketersediaan mesin

MVnD3X
sumber
0

Anda dapat menginstal server web sederhana dan menggunakan halaman web yang mengatakan "ONLINE". Anda hanya perlu terhubung ke mana pun Anda inginkan. Tentu saja Anda memerlukan statin ip atau layanan linke dyndns


sumber
0

Pendekatan yang sangat sederhana adalah dengan telnet ke port TCP yang harus dibuka di server, yaitu:

telnet theServerHostname 80

Meskipun jika layanan ini turun Anda akan mendapatkan hasil yang sama seperti jika tuan rumah sedang down.

Ada semua jenis pemindaian yang dapat dilakukan dengan nmap, pelajari tentangnya di situs nmap dan Anda harus menjadi ahli tentang cara menguji apakah sebuah host sudah habis. Ini termasuk menggunakan protokol selain icmp (ping), seperti TCP (seperti yang dilakukan telnet) dan UDP.

Juga, jika Anda menginginkan sesuatu yang mencakup kemampuan untuk terhubung ke udp, yang mirip dengan telnet dalam hal ini, pertimbangkan netcat .

Kyle Brandt
sumber
0

Microsoft sendiri PortQry Command Line Port Scanner Versi 2.0

Saya menggunakannya untuk menguji port SQL Server sering

open port = MENDENGARKAN atau BUKAN MENDENGARKAN firewall = DIPASANG

jerryhung
sumber