Ttl указывает, сколько раз пакеты данных Ping могут быть пересланы.Значение по умолчанию - 128, поэтому эта ошибка означает, что пакет не достиг места назначения после 128-кратной пересылки (в шлюзах / маршрутизаторах).
Используйте свойство Ttl, чтобы указать максимальное числораз эхо-сообщение ICMP может быть переадресовано до достижения пункта назначения.Если пакет не достигает своего места назначения после пересылки указанное количество раз, пакет отбрасывается и эхо-запрос ICMP не выполняется.Когда это происходит, для состояния устанавливается значение TtlExpired.
Поэтому используйте перегрузку Ping.Send
, которая принимает PingOptions
, и установите большее значение Ttl
в PingOptions
.
Ping pingSender = new Ping ();
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
// Wait 10 seconds for a reply.
int timeout = 10000;
// Set options for transmission:
// The data can go through 255 gateways or routers
// before it is destroyed, and the data packet
// cannot be fragmented.
PingOptions options = new PingOptions (255, true);
// Send the request.
PingReply reply = pingSender.Send(IPAddress.Text, timeout, buffer, options);