(C) Виртуальный сетевой адаптер - PullRequest
2 голосов
/ 21 сентября 2011

Есть ли в linux способ программно создать виртуальный сетевой адаптер, который можно прослушивать, чтобы при каждой попытке отправки данных через адаптер вызывался метод?

Я пытаюсь переслать все пакеты на один IP-адрес, а затем включить их исходное местоположение в пакет.

как то так:

void sendPacket(char to[], char data[])

Так, как если бы я пинговал google.com через виртуальный сетевой адаптер, метод будет называться так sendPacket("GooglesIp","Whatever data a ping sends")

1 Ответ

7 голосов
/ 21 сентября 2011

Я думаю, что вы ищете устройство TUN / TAP в Linux, которое позволяет программе выступать в качестве сетевого интерфейса.

http://en.wikipedia.org/wiki/TUN/TAP

Затем можно написатьзапрограммируйте прослушивание этого интерфейса TUN / TAP для входящих данных и обработайте его соответствующим образом.По сути, вы должны перенаправлять эхо-запросы на новый интерфейс TUN / TAP, а затем иметь программу, считывающую пакеты с интерфейса, и направлять их оттуда.

...