このエントリーをはてなブックマークに追加


.NETでpingを実現する方法・System.Net.NetworkInformation.Ping

本記事は、System.Net.NetworkInformation.Pingを使って、C#, Visual Basic(VB)でpingをするサンプルコードになります。
System.Net.NetworkInformation.Pingがあるので簡単にpingを作成することができます。
Pingの結果は、System.Net.NetworkInformation.PingReplyで取得します。

機器監視用にpingを発行するプログラムを作りたい場合などに役に立つかもしれませんね。

関連サイト

Ping, PingReply クラスを使ってPingを実現

System.Net.NetworkInformation.Ping を newで作成し、Send(ホスト名orIPアドレス)でPingを送信します。
応答は、System.Net.NetworkInformation.PingReplyにセットされるので、あとは判定(Status)し取得した情報を表示しています。

C#

using System;
using System.Net.NetworkInformation;

class Program
{
    static void Main(string[] args)
    {
        string host;
        Ping p = new Ping();
        PingReply reply;
        
        host = @"www.yahoo.co.jp";
        reply = p.Send(host);
        if (reply.Status == IPStatus.Success)
        {
            Console.WriteLine("{0} : PING success.", host);
            Console.WriteLine("応答情報");
            Console.WriteLine("アドレス: {0}", reply.Address.ToString());
            Console.WriteLine("バッファサイズ: {0}", reply.Buffer.Length);
            Console.WriteLine("ラウンドトリップタイム[ms]: {0}", reply.RoundtripTime);
        }
        else
        {
            Console.WriteLine("{0} : PING failed.", host);
        }

        host = @"www.google.co.jp";
        reply = p.Send(host);
        if (reply.Status == IPStatus.Success)
        {
            Console.WriteLine("{0} : PING success.", host);
            Console.WriteLine("応答情報");
            Console.WriteLine("アドレス: {0}", reply.Address.ToString());
            Console.WriteLine("バッファサイズ: {0}", reply.Buffer.Length);
            Console.WriteLine("ラウンドトリップタイム[ms]: {0}", reply.RoundtripTime);
        }
        else
        {
            Console.WriteLine("{0} : PING failed.", host);
        }
    }
}

Visual Basic(VB)

Imports System
Imports System.Net.NetworkInformation

Module Program
    Sub Main(args As String())
        Dim host As String
        Dim p As Ping = New Ping()
        Dim reply As PingReply
        host = "www.yahoo.co.jp"
        reply = p.Send(host)

        If reply.Status = IPStatus.Success Then
            Console.WriteLine("{0} : PING success.", host)
            Console.WriteLine("応答情報")
            Console.WriteLine("アドレス: {0}", reply.Address.ToString())
            Console.WriteLine("バッファサイズ: {0}", reply.Buffer.Length)
            Console.WriteLine("ラウンドトリップタイム[ms]: {0}", reply.RoundtripTime)
        Else
            Console.WriteLine("{0} : PING failed.", host)
        End If

        host = "www.google.co.jp"
        reply = p.Send(host)

        If reply.Status = IPStatus.Success Then
            Console.WriteLine("{0} : PING success.", host)
            Console.WriteLine("応答情報")
            Console.WriteLine("アドレス: {0}", reply.Address.ToString())
            Console.WriteLine("バッファサイズ: {0}", reply.Buffer.Length)
            Console.WriteLine("ラウンドトリップタイム[ms]: {0}", reply.RoundtripTime)
        Else
            Console.WriteLine("{0} : PING failed.", host)
        End If
    End Sub
End Module

実行結果

上記のC#, Visual Basic(VB)の動作結果のキャプチャは以下の通りです。

01.png

以上、.NETでPingを簡単に実装するサンプルコードでした。



添付ファイル: file01.png 7件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-01-03 (金) 15:44:33