Про ошибку понял (я баловался с ip отправителя поэтому пакеты на серверной части плохо работали) исправил уже. Что вы тогда скидывали мне я прочитал (спасибо за информацию малок кто это скидывает).
Что касается повреждений пакетов которые я принимаю.
Сторонней программой "дампю" lan кабель сторонним компьютерам и смотрю пакет в передаваемой последовательности символов 'A' иногда появляются код не соответствующий коду 'A'.
Примерно так но иногда в место 41 идет вообще другое. При этом стандартный PING по этому же ip никогда не выдает ошибку "несоответствия пакета" с учетом максимального параметра -l , -n.
Что касается ошибки.
1)Ошибка сейчас.
2) Microsoft Visual Studio последнего обновления.
3) Параметры я так понимаю Debug и Release то всё.
*Вопрос мне задал брат днем (возможно-ли не зная с какого ip придет пакет просматривать все и если пакет пришёл с полезной нагрузкой то далее обрабатывать эту полезную нагрузку ?).
AVSomov, Я попытался найти вас в соцсетях и обнаружил Андрей Сомов с сокращённым id AVSomov который тоже зарегистрирован на Хабре. Что самое комичное, он попытался мне ответить на вопросы, но не смог. Оказалось что есть подобный форум, но про фото. Мы переписывались час, прежде чем поняли, что говорим о разных вещах.
ок, здесь выдает ошибку. Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);
И ещё может это косяк Packet Crafting но в полученных данных нету пакета информации или он битый.
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 = "aaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 120;
PingReply reply = pingSender.Send("www.google.com", timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Адрес: {0}", reply.Address.ToString());
Console.WriteLine("Время в пути: {0}", reply.RoundtripTime);
Console.WriteLine("Время жить: {0}", reply.Options.Ttl);
Console.WriteLine("Не фрагментируйте: {0}", reply.Options.DontFragment);
Console.WriteLine("Размер буфера: {0}", reply.Buffer.Length);
Console.WriteLine("первый элимет: {0}", reply.Buffer[0]);
}
Вроде вот "клиентское приложение" могу ошибаться (пожалуйста поправите).
В строчки reply.Buffer[0] выводиться полезная нагрузка которую приняли?
Вообще я первый курс "машиностроение". Мой мл. брат учится в школе и ему в край как интересно программирование. Я его знаю (c#) и в школе олимпиады выигрывал от компаний. Так что выбор моего брата очевиден (родители сказали что я что-то знаю и теперь он мне мозг выносит) . Мы написали программу которая использует в качестве буфера telegra.ph, однако "фаервол" его не пропускает. Но ping проходит и я еще в школе с одноклассниками на олимпиаде от "СКБ Контур" делали что то подобное, но исходников не сохранилась как и контактов. Хочу повторить так как это возможно и идеально закрывает все пробелы.
Если получится то и в остальных проектов брата я буду использовать.
Прикольно, это при условии что я учусь на распределеные вычисления. Преподаватель у на конечно тот ещё приколист (было 2 сложные лаб. Метод подвижных клетоных автоматов и 3d движок в picturebox) это задание прям сильно выбивается.
Получается что мне не получится это сделать с моим уровнем знаний ?
Если не против, то опишу задачу. Требуеться с компьютера отослать информацию (любую) на роутер. После роутер должен принять информацию и выдать как ошибку. Затем отправить ошибку по адресу отправителя указанного в маске. В свою очередь в маске должен быть указан не отправитель этого пакета, а совсем другой компьютер. Он его принимает и задача выполнена.
Нам преподаватель задал, как развлечение на каникулы (кто хочет пусть себе мозг поломает), я решил поломать. (Первый курс, 3 месяцев студенты, знания чуть выше чем профельные классы школы).
Можно задать вопрос не по теме ?
С помощью socket можно поменять в этом пакете ip отправителя, средствами c#?
*делал через Linux, но это такие костыли (тем более с ним работать не умею).