Поделиться через


PingOptions Класс

Определение

Используется для управления Ping передачей пакетов данных.

public ref class PingOptions
public class PingOptions
type PingOptions = class
Public Class PingOptions
Наследование
PingOptions

Примеры

В следующем примере кода используются PingPingOptions классы и PingReply классы для отправки запроса на эхо-запрос ICMP на узел, указанный в командной строке.

using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;

namespace Examples.System.Net.NetworkInformation.PingTest
{
    public class PingExample
    {
        // args[0] can be an IPaddress or host name.
        public static void Main (string[] args)
        {
            Ping pingSender = new Ping ();
            PingOptions options = new PingOptions ();

            // Use the default Ttl value which is 128,
            // but change the fragmentation behavior.
            options.DontFragment = true;

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);
            int timeout = 120;
            PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine ("Address: {0}", reply.Address.ToString ());
                Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
                Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
                Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
                Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
            }
        }
    }
}
open System.Net.NetworkInformation
open System.Text

// args[0] can be an IPaddress or host name.
[<EntryPoint>]
let main args =
    let pingSender = new Ping()

    // Use the default Ttl value which is 128,
    // but change the fragmentation behavior.
    let options = PingOptions()
    options.DontFragment <- true

    // Create a buffer of 32 bytes of data to be transmitted.
    let data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    let buffer = Encoding.ASCII.GetBytes data
    let timeout = 120
    let reply: PingReply = pingSender.Send(args.[0], timeout, buffer, options)

    match reply.Status with
    | IPStatus.Success ->
        printfn "Address: %O" reply.Address
        printfn "RoundTrip time: %d" reply.RoundtripTime
        printfn "Time to live: %d" reply.Options.Ttl
        printfn "Don't fragment: %b" reply.Options.DontFragment
        printfn "Buffer size: %d" reply.Buffer.Length
        0
    | _ ->
        eprintfn "Error sending ping: %O" reply
        eprintfn "Error was: %O" reply.Status
        1

Комментарии

Класс PingOptions предоставляет Ttl и DontFragment свойства для управления передачей пакетов эхо-запросов протокола ICMP.

Свойство Ttl задает время жизни для пакетов, отправленных классом Ping . Это значение указывает количество узлов маршрутизации, которые могут пересылать Ping пакет до его отмены. Этот параметр полезен, если вы хотите проверить количество перенаправлений, также известных как прыжки, требуется для отправки пакета с исходного компьютера на целевой компьютер.

Свойство DontFragment определяет, могут ли данные, отправленные удаленному узлу, разделить на несколько пакетов. Этот параметр полезен, если вы хотите протестировать максимальный модуль передачи (MTU) маршрутизаторов и шлюзов, используемых для передачи пакета.

Экземпляры класса передаются Send в методы и SendAsync методы, а PingReply класс возвращает экземпляры PingOptionsPingOptions через Options свойство.

Список начальных значений свойств для экземпляра PingOptionsсм. в конструкторе PingOptions .

Конструкторы

Имя Описание
PingOptions()

Инициализирует новый экземпляр класса PingOptions.

PingOptions(Int32, Boolean)

Инициализирует новый экземпляр PingOptions класса и задает значения времени в реальном времени и фрагментации.

Свойства

Имя Описание
DontFragment

Возвращает или задает Boolean значение, которое управляет фрагментацией данных, отправленных на удаленный узел.

Ttl

Возвращает или задает количество узлов маршрутизации, которые могут пересылать Ping данные перед удалением.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к