Как я могу подделать IP-адрес отправителя с помощью curl? - PullRequest
40 голосов
/ 04 марта 2011

Мне нужно сделать запрос с поддельным IP-адресом для целей тестирования. Какой самый простой способ сделать это?

Ответы [ 3 ]

62 голосов
/ 04 марта 2011

Для моих собственных целей достаточно было изменить заголовок HTTP с помощью следующего:

curl --header "X-Forwarded-For: 1.2.3.4" "http://www.foobar.com"
38 голосов
/ 04 марта 2011

Вы не можете.

В общем, подделка IP-адресов для TCP чрезвычайно сложна. Если вы не контролируете маршрутизатор совсем рядом с вашей целью или рядом с IP-адресом, который вы подделываете, считайте это невозможным.

Пакетам ответа требуется обратный путь, чтобы завершить даже трехстороннее рукопожатие 1006 *. Самый надежный способ сделать это - иметь контроль над маршрутизатором в наиболее общем пути между вашей целью и вашим поддельным IP-адресом: это позволит вам перехватывать пакеты между целью и поддельным адресом и пересылать их вам.

Вы также можете попробовать внедрить фиктивных BGP-маршрутов рекламных объявлений, но это, несомненно, будет замечено и дорого обойдется вам, когда ваши сверстники бросят вас полностью.

7 голосов
/ 04 марта 2011

Могу ли я сделать подделку libcurl или скрыть свой реальный IP-адрес?

Нет.libcurl работает на более высоком уровне.Кроме того, фальшивый IP-адрес будет означать отправку IP-пакета с выдуманным адресом источника, и тогда у вас обычно возникает проблема с получением возвращенного пакета, так как он не будет перенаправлен вам!

Если вы используетепрокси для доступа к удаленным сайтам, сайты не увидят ваш локальный IP-адрес, а вместо этого адрес прокси.

Также обратите внимание, что во многих сетях используются NAT или другие методы IP-трафика, которые заставляют вас видеть ииспользуйте локальный IP-адрес, отличный от того, с которого вас увидит удаленный сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...