В сетевом программировании я новичок. Хотелось бы разобраться со следующими вопросами: 1. Как программно узнать/изменить свои ip/netmask, MAC? 2. Как прочитать/изменить таблицу ARP cache сетвухи? 3. Какие сырые сокеты бывают и как с ними работать, то есть могу ли я напрямую писать в поле данных Ethernet кадров (ну или соответственно пакетов IP), и если могу, то как это сделать? Пожалуйста, поделитесь ссылками на руководства/маны/туторы/книги, которые мне помогут.
В виндовс это функции WinApi iphlpapi.lib, Add* и Delete* для добавления и удаления адресов, недокументированная _SetAdapterAddress для изменения.
О! Спасибо! По запросу "iphlpapi.lib arp" гугл нарыл гору нужной инфы! А то обычно слово "arp", как заклинание, давало тьму страниц по типу "arp poisoning - что это?".
По пункту 3. В сырых (RAW) сокетах можно модифицировать только IP пакеты, для модификации Ethernet заголовка (для тогоже "arp poisoning") нужен NDIS драйвер, Майкрософт уже написала его для нас, ndisuio или ndisprot, нужно только немного подправить и пользоваться, почитать можно на www.ndis.com
может в *никсах и поддерживает, ТС спрашивал про*никсы и винды, но я в*никсах ноль, потому искать не буду