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) |