digger> Нужно это для анализа нехороших программ, которые желают видеть Интернет,но без реального выхода в него.
А почему ты решил, что программки будут пользоваться DNS-ом? При открытии соединения важен IP. Его можно просто вбить в программу так же, как и DNS имя. Т.е. с анализом таких программ будет плохо.
digger> Давaйте по порядку, начнем с DNS.digger> DNS на себя - это неинтересно.Мне хочется ,чтобы у каждого домейна был свой IP,чтобы разпознать,что с какого домейна качалось, ведь качается по IP.Есть ли DNS сервер, поддерживающий не только конфиги,но и скрипты?
Качается по IP. Домейн быть не обязан. IP хватает для уникальной идентификации машины. Более того, он и только он и используются.
Не хочешь линуксовый/фряшный стандартный — на тебе —
Dual DHCP DNS Server | Free software downloads at SourceForge.net. И понятно, где поменять. В тот момент, когда он на нашёл, то добавь и запиши в конфиг. Всё.
digger> Раутер.Раутинг в XP есть.Это должна быть строка в таблице,добавляемая route add,но я не знаю, как это делается.
Раутинг есть. Очень простой. И default gateway есть. Вот такого, чтобы принимал по любому IP и обрабатывал — такого нет. Бо стек приучен с рождения к обратному. Более того, даже на раутерах и лине с фряхой, софт для раутинга не работает полноценно со стеком сам, он ему перебрасывает, когда надо.
А присвоить альтернативных IP адресов на ХР можно не более 4-х, ЕМНИП. На лине виртуальных адресов на физическую карту можно больше, но тоже есть лимит. И надо выдавать командочку ifconfig (ну, или через вызовы кернела).
digger> Апач.С IP у него нет проблем, он получает всё как будто обращаются к нему.
Он получает только то, что стек ему направит. А далее ищёт URL. Ну, или через модули расширения обрабатывает вещи, как в тех же стратах — ищется вход в карте концов URL и по ним вызывается джавовский страт. Для PHP вызывается PHP, которая и генерит страницу.
digger> Но как узнать оригинальный адресс запроса? Если никак, то не страшно,переживем.С файлами - самое простое, перенаправление делается с помощью Aliasmatch,но на фиксированные файлы, примерно так:digger> Aliasmatch *.ехе c:\goat\goat.exe
дык, это вход в ту же карту.
digger> Я хочу делать это скриптом.
Кто мешает дописать в апаческий конфиг и из скрипта дёрнуть, чтобы перечитал?
Добавление default router:
Вначале
code text
H:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 1e 4f e8 43 92 ...... Intel(R) 82566DM-2 Gigabit Network Connection - Packet Scheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.23.4.1 10.23.4.115 10
10.23.4.0 255.255.254.0 10.23.4.115 10.23.4.115 10
10.23.4.115 255.255.255.255 127.0.0.1 127.0.0.1 10
10.255.255.255 255.255.255.255 10.23.4.115 10.23.4.115 10
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
224.0.0.0 240.0.0.0 10.23.4.115 10.23.4.115 10
255.255.255.255 255.255.255.255 10.23.4.115 10.23.4.115 1
Default Gateway: 10.23.4.1
===========================================================================
Persistent Routes:
None
Потом
code text
route ADD 0.0.0.0 MASK 0.0.0.0 10.23.4.1 METRIC 10 IF 2
Заметь номер интерфейса 2 в первой команде (0x02) и во второй (IF 2) — надо использовать, если хочешь DG для этого интерфейса.
Но default gateway может быть только один. Поэтому можно добавить раут для подсети на твою машину:
code text
route ADD 89.108.0.0 MASK 255.255.0.0 10.23.4.2 METRIC 10 IF 2
И 65,534 адресов будут ходить (точнее пытаться) не через 10.23.4.1, а через 10.23.4.2.
Повторюсь, что принять эти все IP пакеты и обработать на 10.23.4.2 — задача трудная.