Мне нужно сделать запрос с поддельным IP-адресом для целей тестирования. Какой самый простой способ сделать это?
Для моих собственных целей достаточно было изменить заголовок HTTP с помощью следующего:
curl --header "X-Forwarded-For: 1.2.3.4" "http://www.foobar.com"
Вы не можете.
В общем, подделка IP-адресов для TCP чрезвычайно сложна. Если вы не контролируете маршрутизатор совсем рядом с вашей целью или рядом с IP-адресом, который вы подделываете, считайте это невозможным.
Пакетам ответа требуется обратный путь, чтобы завершить даже трехстороннее рукопожатие 1006 *. Самый надежный способ сделать это - иметь контроль над маршрутизатором в наиболее общем пути между вашей целью и вашим поддельным IP-адресом: это позволит вам перехватывать пакеты между целью и поддельным адресом и пересылать их вам.
Вы также можете попробовать внедрить фиктивных BGP-маршрутов рекламных объявлений, но это, несомненно, будет замечено и дорого обойдется вам, когда ваши сверстники бросят вас полностью.
Могу ли я сделать подделку libcurl или скрыть свой реальный IP-адрес?
Нет.libcurl работает на более высоком уровне.Кроме того, фальшивый IP-адрес будет означать отправку IP-пакета с выдуманным адресом источника, и тогда у вас обычно возникает проблема с получением возвращенного пакета, так как он не будет перенаправлен вам! Если вы используетепрокси для доступа к удаленным сайтам, сайты не увидят ваш локальный IP-адрес, а вместо этого адрес прокси. Также обратите внимание, что во многих сетях используются NAT или другие методы IP-трафика, которые заставляют вас видеть ииспользуйте локальный IP-адрес, отличный от того, с которого вас увидит удаленный сервер.
Нет.libcurl работает на более высоком уровне.Кроме того, фальшивый IP-адрес будет означать отправку IP-пакета с выдуманным адресом источника, и тогда у вас обычно возникает проблема с получением возвращенного пакета, так как он не будет перенаправлен вам!
Если вы используетепрокси для доступа к удаленным сайтам, сайты не увидят ваш локальный IP-адрес, а вместо этого адрес прокси.
Также обратите внимание, что во многих сетях используются NAT или другие методы IP-трафика, которые заставляют вас видеть ииспользуйте локальный IP-адрес, отличный от того, с которого вас увидит удаленный сервер.