pingを使用せずにマシンがオンラインかどうかを確認するにはどうすればよいですか?


12

マシンが許可されないように構成されていても、マシンでpingを実行したり、ポートスキャンを実行したりできるアプリケーションを使用していました。

現在、WAN上のリモートマシンをpingしようとしていますが、pingを許可しないようにマシンを設定しています。使用できるpingに似たものはありますか?

繰り返しますが、これは私たちの湾の一部である別の都市にある機械です。

回答:


4

XP / 2003 +(Vista / 2008/7を含む)を使用している場合、Win32_PingStatusを使用できます。スクリプトコードを実行しているマシンはXP / 2003 +である必要がある唯一のシステムであり、Ping.exeを使用するのと同じように機能します。 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

Win32_PingStatusの使用方法の詳細については、Scripting Guyの記事を参照してください。

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


2
私の理解では、リモートホストはICMPエコー要求パケットに応答しないように構成されており、localhostのping.exeが無効にされているわけではありません。そのため、これはping.exeの実行と何の違いもありません。つまり、何もしません。
デビッドパシュリー

15

マシン上の開いているtcpポートにTelnetで接続できます。たとえば、マシンがWebサーバーであり、ポート80が開いている場合、次のようにします。

telnet ip.ad.dre.ss 80

これは暗号化されたポートでも機能します(ただし、データを理解することはできません)

他に試すべきポートは次のとおりです。

  • httpsサーバーの場合は443
  • sshの場合は22

(Linuxマシンの/ etc / servicesにポート/サービスのリストがあります)


6

PingはICMPです。ICMPをブロックすると、pingできなくなります。

TCP / UDP接続を受け入れる場合、TCPまたはUDPポートをテストできる場合があります。

ping、nc、telnet、およびその他のツールがないコンテナでテストを実行している場合、次のトリックを使用できます。

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

これは、デバイスを介してtcp / udpを介して接続しようとし(うわー、知っています)、ポートが開いている場合は「open」、閉じている場合は「closed」をエコーし​​ます。

その場合、「閉じる」をエコーする前にしばらくハングします。


2
クールなドッカーポッドでこれを使用する必要がありました;-)
アモルファス

4

リモートマシンでSNMPエージェントを実行し、マネージャーを使用して標準MIBから値の1つを読み取ります。


3

ファイアウォールやルーターがない場合、つまり、チェックしようとしているホストと同じセグメントにいる場合-上記の解決策のほとんどは少し網羅的です。

どのポートに接続するかは問題ではありません。実際、サービスを実行する可能性が低いポートに接続すると、検出されずにジョブを完了できます。

どうやって?

任意のツールを使用できますが、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
%

ホストがパケットをドロップしない限り、これはすぐに発生するはずです。実際に起こっているのは、ホスト上のTCP / IPスタックがRSTビットが設定されたTCPセグメントを送り返していることです。つまり、SYNパケットを終了しています。

RSTパケットを受信したという事実は、実際にもう一方の端にホストがあることを意味し、ボーナスとして-あなたはそのように検出されませんでした(TCP / IPには、この接続について話す上位層アプリケーションがありませんでした) 。

ただし、telnetではなく、おそらくscapyのようなものを使用し、RSTフラグを探すものを作成して、お知らせします。

それはしばらくの間ハングし、タイムアウト- -同じことやってみていることIPにはホストが存在しない場合にだけ、これを完成させるだろう、受信ホストがドロップフィルタとファイアウォールを持っていた場合に発生が。

ファイアウォールが関与している場合、他の人が示唆しているように、などのツールを使用しnmapます。


3

ターゲットマシンと同じLAN上の別のマシンにアクセスできる場合は、arpingを使用できます。

Arpingは、マシンをターゲットにしたARPパケットを送信することで機能します。ネットワークを使用したい場合はarpパケットをブロックできないため、これは完全に機能します(まあ、どこでも静的arpテーブルをセットアップできます:D) arpingターゲットと同じLAN。


1

マシンで利用可能なサービスはありますか?マシンが存在するかどうかを確認する1つの方法は、telnetクライアントを使用して接続することですが、ヒットする必要があるポートを変更することです。

したがって、マシンがMS SQLを実行しており、デフォルトでポート1433で実行されているとします。次のコマンドを使用します

telnet machine-name-address 1433

Telnetがマシンを接続している場合、マシンは稼働していますが、正常に動作しているわけではありませんが、それでもそのポートをリッスンしています



1

nmap -T5 -sS -P0 ho.st.ip.addrそのマシンで利用可能なポートが表示されます。Windowsで実行している場合、またはLinuxマシンにアクセスできない場合は、cygwinのインストールを推奨します。



1

「nmap」のGoogle。私はこれをいつも使います。ファイアウォールが期待どおりに動作していることを確認するのに最適です。加えて、私はそれがMatrixムービーで参照されていて、それが二重に素晴らしいと信じています。


1

マシンに1分間に1回SNMPトラップ(パケット)をリモートモニターに送信させ、毎分トラップを受信して​​いることを監視するルールを設定することができます。


1
これは確かに良い答えであり、非常に正しいものです。SNMPは十分に低レベルであり、Windowsシステムで構成できます。ICMPの唯一の代替であり、実際にはWANおよびLANを介してルーターおよびシステムを監視するためにネットワークエンジニアによって日常的に使用されています
Abhishek Dujari

1

この問題の簡単な解決策は、netcatユーティリティを使用することです。このシナリオの唯一の前提条件は、そのリモートマシンで開いているポートを少なくとも1つ認識していることです。

nc -nv ip_address port_number

上記のコマンドは結果を提供します。この結果は、ポートが開いているかどうか、したがってマシンの可用性を判断します。


0

簡単なWebサーバーをインストールし、「オンライン」というWebページを使用できます。必要な場所に接続するだけです。もちろん、スタチンIPまたはサービスリンクが必要です。


0

非常に簡単なアプローチは、サーバーで開かれているはずのTCPポートにtelnetすることです。

telnet theServerHostname 80

ただし、サービスがダウンしている場合、ホストがダウンしている場合と同じ結果になります。

nmapで実行できるあらゆる種類のスキャンがあり、nmapのサイトでそれらについて学び、ホストが稼働しているかどうかをテストする方法の専門家になる必要があります。これらには、TCP(telnetと同様)やUDPなど、icmp(ping)以外のプロトコルの使用が含まれます。

また、この意味でtelnetに似ているudpに接続する機能を含むものが必要な場合は、netcatを検討してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.