Ubuntu
PHP выше 5.5
На сервере внешних 3 ip вроде за роутером
Я их знаю. Провайдер VPS в письме прислал.
Но нужно узнавать их из PHP, потому что я пишу небольшую узконаправленную CMS и хотелось бы, чтобы она сама определяла внешние IP (Те, с которых сервер может посылать запросы, например курлом) для дальнейшей работы с ними.
А нет, так и вставить, выдает много моусора маски и еще что то но среди мусора есть эти ip. Осталось найти способ избавится от мусора и оставить нужные. Спасибо работает!
Выдает локальный адрес маски и все внешние адреса.
Но! Есть одно но, он не показывает внешние адреса если сервер находится за роутером. Проверил на сервере который находится за роутером и он тоже имеет 3 адреса с которых может выходить в сеть например по курлу но эта команда показывает только локальный адрес в случае с таким сервером.
Как бы получить адреса в этом случае? Знаю что возможно видел несколько примеров например панели управления хостингом которые это делают но вот как?
YAshchenKO: почитайте, как работает маршрутизация в linux.
Ваше приложение не может использовать адреса для исходящих коннектов. Оно может только слушать их.
Для исходящих соединений в linux/bsd/macos (да и в любой нормальной ОС) используется default route (+ отдельные маршруты до отдельных подсетей, например, внутри VPN или локалку).
Если есть какая-нибудь хитрая маршрутизация - то там может быть по-другому. Но таких машин на никсах в мире хорошо если 1% из всех никсов.
А чтобы слушать все доступные адреса для входящих коннектов - их список знать не нужно, система сама всё сделает.
Вы правы! Попробовал использовать с курлом ip один из... по выбору и не получилось, а без выбора получается выполнить запрос. Нет простых способов это решить?
Дополнение к вопросу. Как узнать внешние ip своего сервера если он например на амазоне (EC2 + Elastic IP)
Это хороший пример когда адреса принадлежат не на прямую вашему VPS