Мне нужно получить локальный IP-адрес компьютера, например 192. * .... Возможно ли это с помощью PHP?
Мне нужен IP-адрес системы, в которой запущен скрипт, но мне не нужен внешний IP, мне нужен его адрес локальной сетевой карты.
php
ip-address
воздух
источник
источник
источник
getHostName
не возвращают доменное имя сайта.Это старый пост, но получите его вот так:
Например:
Нашли его на другом сайте, не удаляйте команду обрезки, иначе вы получите имя компьютера.
НАЗАД (специальные кавычки): это работает, потому что PHP будет пытаться выполнить все, что находится между этими «специальными кавычками» (обратными кавычками), как команду оболочки и возвращает полученный результат.
Очень похоже (но намного эффективнее), чем:
источник
gethostbyname
возврата IP-адреса обратной петли (например, 127.0.0.1) для хост-машины.попробуйте это (если ваш сервер Linux):
источник
eth0
что это подходящий интерфейс.wlan0
вместоeth0
и заменить'inet addr:'
на'inet adr:'
, возможно, из-за языкового стандарта, используемого в моей системе (fr_FR). Помимо этого, этот ответ был тем решением, которое я искал. Спасибо!'inet adr:'
работал в моем терминале (французский язык), но в сценарии PHP'inet addr:'
было правильное значение (английский язык, я думаю).Внешний IP-адрес локального компьютера по умолчанию можно получить следующим образом:
Как это устроено:
Поскольку это UDP,
socket_connect
в сеть не выходит. Он только назначает сокету локальный адрес и порт. Это позволяет нам получить местный адрес.Это решение работает без сетевого трафика, DNS или выполнения команд.
Это может не сработать, если нет маршрута
8.8.8.8
(например, у вас нет подключения к Интернету).источник
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_connect($sock, $this->getDockerMachineIp(), 53);
sockets
модуль должен быть установлен и включен на PHP.Зависит от того, что вы подразумеваете под местным:
Если под локальным вы подразумеваете адрес сервера / системы, на которой выполняется PHP-код, то есть еще два пути для обсуждения. Если PHP запускается через веб-сервер, вы можете получить адрес сервера, прочитав
$_SERVER['SERVER_ADDR']
. Если PHP запускается через интерфейс командной строки, вам, вероятно, придется выполнить оболочкуipconfig
(Windows) /ifconfig
(* nix) и найти адрес с помощью grep.Если под локальным вы подразумеваете удаленный адрес посетителя веб-сайта, но не его внешний IP-адрес (поскольку вы специально указали 192. *), то вам не повезло. Весь смысл маршрутизации NAT - скрыть этот адрес. Вы не можете определить локальные адреса отдельных компьютеров за IP-адресом, но есть некоторые уловки (пользовательский агент, возможно, MAC-адрес), которые могут помочь различить, есть ли несколько компьютеров, осуществляющих доступ с одного и того же IP-адреса.
источник
hostname (1) может указать IP-адрес:
hostname --ip-address
или, как говорит человек, лучше использоватьhostname --all-ip-addresses
источник
Вы можете попробовать это как обычный пользователь в CLI на хосте Linux:
Вывод:
источник
array('bond0'=>'10.66.42.83','bond1'=>'hosting Ip address','lo'=>'127.0.0.1', )
Я понял это. Я добавил этот код в файл php,split()
функция УСТАРЕЛА с PHP 5.3.0. так что предлагаем использоватьexplode()
вместо этогоЯ пробовал на ПК с Windows, и он работал, а также думаю, что он будет работать на Linux.
источник
Это очень просто, и приведенные выше ответы усложняют ситуацию. Просто с помощью этого метода вы можете получить как локальные, так и общедоступные IP-адреса.
источник
Это просто. Вы можете получить имя хоста с помощью этого простого кода.
Или вы также можете использовать
$_SERVER['HTTP_HOST']
для получения имени хоста.источник
Я возился с этим вопросом для php на стороне сервера (работает с терминала Linux)
Я взорвал ifconfig и сократил его до IP-адреса.
Вот:
И, конечно же, замените wlan0 на желаемое сетевое устройство.
Мой вывод:
источник
Если вы находитесь в среде разработки на OS X, подключенной через Wi-Fi:
источник
У меня это сработало.
источник
PHP_SELF
Возвращает имя файла текущего скрипта с путем относительно корняSERVER_PROTOCOL
Возвращает имя и версию протокола запрошенной страницы.REQUEST_METHOD
Возвращает метод запроса, используемый для доступа к страницеDOCUMENT_ROOT
Возвращает корневой каталог, в котором выполняется текущий скрипт.источник
Попробуй это
источник