2016-09-25 7 views
1

Я хочу получить IP-адрес локального компьютера, на котором должен работать конкретный компьютер. Чтобы запустить страницу, я сначала проверяю, соответствует ли локальный IP-адрес указанному, и только тогда он откроет эту страницу. Я программирую на PHP.Получить IP-адрес локальной машины в PHP

Я пробовал $ _SERVER и getenv, но предоставленный ими адрес не соответствует IP-адресу моего компьютера. Кроме того, они меняются каждый раз, когда соединение обновляется.

Пожалуйста, помогите.

+1

Вы хотите, чтобы адрес из * клиент * компьютер (где работает ваш браузер) или * сервер * компьютер (где программа PHP на самом деле работает)? Помните, что в большинстве случаев PHP - это язык программирования * на стороне сервера *. –

+0

Я хочу адрес клиентского компьютера. Я хочу проверить, что если это мой компьютер или компьютер назначенного человека, только тогда страницы должны открыться. –

+0

Это не очень хорошая безопасность. Также может быть невозможно, если вы используете широкополосную подписку, где назначенный вами адрес не является статическим и фиксированным. –

ответ

0

Можете ли вы использовать любой из следующих $ _SERVER [ 'REMOTE_ADDR'] или $ _SERVER [ 'REMOTE_HOST']

+0

Как я упоминал в сообщении , Я пытаюсь использовать $ _SERVER и getenv, но они не дают результата. Они постоянно меняются каждый раз, когда соединение обновляется. –

+0

Использование интерфейса командной строки не предоставляет ни одного из индексов 'REMOTE_ADDR' или' REMOTE_HOST' в массиве '$ _SERVER' для хостов Windows по крайней мере. –

4

Вы можете найти IP-адрес с помощью $_SERVER['REMOTE_ADDR'] или $_SERVER['REMOTE_HOST'] переменные.

Или же можно попробовать:

От CLI

PHP < 5.3.0

$myIp= getHostByName(php_uname('n')); 
echo $myIp; 

PHP> = 5.3.0

$myIp = getHostByName(getHostName()); 
echo $myIp; 

Для IP Client Address вы можете следовать ниже ссылке: Источник: Get the client IP address using PHP

+0

'$ _SERVER ['REMOTE_HOST']' не работает для меня. – Joshua

Смежные вопросы