Ну например так.
А вообще ф топку M$ со шлюза. А если это для приложения какого-то, а не шлюза, то лучше организовывать failover средствами самого приложения или используемого им сетевого протокола.
Это не шлюз :) Чисто домашнее применение и тяга к извращениям.
Сценарий такой:
Есть ПК, который какбы эээ… «главный», есть который «не главный».
Вырубили «главный» — «неглавный» присвоил себе ИП
Врубили «главный» — «неглавный» отпустил ИП
Раз это приложение тогда зачем именно ip адрес? В XP такое сделать не выйдет. Можно решить вопрос на уровне DNS: создать две A записи с одним именем на оба ваши ip. По желанию включить/отключить на DNS сервере round-robin ответы.
Ну расклад немного диковатый, на самом деле.
Обе эти тачки болтаются за NAT, на дешовском роутере настроен проброс нескольких портов.
Ну и вышеописанная прога эти порты слушает, на запросы потусторонние отвечает.
Сей процесс нужен, а повлиять на него возможности нет.
Раунд-робин тут не поможет точно, т.к. ПК будут опрашиваться по очереди — соответственно в половине случаев будет облом.
Да и проброс порта на имя — не сделать.
Попробую на досуге простенький сервис набросать, больших сложностей быть не должно.
Идея примерно такая.
Есть хосты, на них болтается этот гипотетический сервис.
У хостов есть свои ИПы.
При старте сервис ищет собратьев, если не находит — ARP-ом проверяет есть ли нужный ИП в сети.
Если не занят — добавляет его себе на интерфейс.
Если занят — ждем и периодически проверяем, вдруг пропал.
Если пропал — добавляем себе.
При шутдауне — убираем ИП.
Если энтузиазм не угаснет — заморочусь выборами старшего и прочими плюшками.