Я просто думал что если применить технологию на подобии "DNS Amplification Attacks" при котором ip атпровителя и есть ip северной части, то для любого кто будет прослушивать интернет трафик все выглядит будет как пользователю с какого-то сервера (предположим google) приходит пакет от ping в котором есть нагрузка, однако по маске инициализатором этого сужил этот же пользователь, но от него и не сходил пакетов ping.
Как то так.
Всеравно большое спасибо.
Про ошибку понял (я баловался с 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 проходит и я еще в школе с одноклассниками на олимпиаде от "СКБ Контур" делали что то подобное, но исходников не сохранилась как и контактов. Хочу повторить так как это возможно и идеально закрывает все пробелы.
Если получится то и в остальных проектов брата я буду использовать.