@mIka01

Как мне изменить IP адреса в пакете ICMP?

Здраствуйте, у меня вопрос связанный с сетями.
У меня есть код (спасибо AVSomov), он отсылает сообщение по icmp каналу.
Теперь вопрос. Как мне поменять IP адрес отправителя ?
Как я понял из статьи, то в заголовки есть IP адрес отправляющей стороны и принимающей, как мне изменить эти IP адреса желательно силами c#.

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

namespace icmp_client
{
    public class IcmpClient
    {
        public static void Main (string[] args)
        {
            Ping pingSender = new Ping ();
            PingOptions options = new PingOptions ();

            options.DontFragment = true;
            
            string data = "Привет!";
	    string IP = "194.186.188.237";
            byte[] buffer = Encoding.ASCII.GetBytes(data);

            int timeout = 120;
            PingReply reply = pingSender.Send(IP, timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine("Address: {0}", reply.Address.ToString ());
                Console.WriteLine("Message: {0}", data);
                Console.WriteLine("Buffer size: {0}", reply.Buffer.Length);
            }
        }
    }
}


Заранее благодарю.
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 2
@none7
API драйвера отправляющего ICMP запросы не предусматривает выбор адреса отправки. Вы можете запускаться с админскими привилегиями и использовать RAW-сокеты, для самостоятельного формирования и разбора IP-пакетов. И это даже можно сделать на C# через обычный System.Net.Sockets.Socket. Только вот очень вероятно, что если Вы отправите пакет с адресом не тем, что Вам выдал провайдер, то он такой пакет дропнет.
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Хм. Зачем? Я так понял, Вы icmp-шелл "придумали"? :) "Новый, невидимый, безопасный" мессенджер? :) ну-ну... Как только пров получит пакет, у которого src ip установлен в такой, какой быть не должен - он его просто дропнет и все...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы