|
|
|
| Здраствуйте. Хотел по интересоваться. Возможно ли при обращении кого-то на мою страницу, вытащить (не только его ip), но и сетевое имя. Или на php такого не удастся сделать?
Спасибо. | |
|
|
|
|
|
|
|
для: Антоха
(15.12.2006 в 02:41)
| | У меня так. Если кто-то из локалки - считать адрес.
if (substr($REMOTE_ADDR, 0, 10)=="192.168.1.") {
$name=gethostbyaddr($REMOTE_ADDR);
}
|
Но чревато тормозами. | |
|
|
|
|
|
|
|
для: tuder
(15.12.2006 в 06:58)
| | Странно, но
substr($REMOTE_ADDR, 0, 10)=="192.168.1."
|
не работает.
$name=gethostbyaddr($REMOTE_ADDR);
|
работает.
Спасибо за ответ.
Но интересно, почему же substr() не работает? | |
|
|
|
|
|
|
|
для: Антоха
(16.12.2006 в 18:27)
| | а зачем строку с адресом ограничивать десятью символами? А если там больше? | |
|
|
|
|
|
|
|
для: Trianon
(16.12.2006 в 18:39)
| | >а зачем строку с адресом ограничивать десятью символами? А если там больше?
Тут вроде всё правильно, мы ведь проверяем если ip начинается с 192.168.1. , тогда только выполняем код, а цифр конечно же больше (локалка работает в диапазоне 192.168.1.[0-255]).
Понял почему не работает у меня
<?php
substr($REMOTE_ADDR, 0, 10)=="192.168.1.";
?>
|
Почему то не работают переменные окружения, например:
<?php
echo $DOCUMENT_ROOT; //ничего не выдает
echo $REMOTE_ADDR; //ничего не выдает
?>
|
хотя phpinfo() - работает.
Может php.ini надо настроить или что-нить другое сделать?
А если делать так
<?php
substr($_SERVER['REMOTE_ADDR'], 0, 10)=="192.168.1.";
?>
|
то работает | |
|
|
|
|
|
|
|
для: Антоха
(16.12.2006 в 19:19)
| | >Почему то не работают переменные окружения, например:
>echo $DOCUMENT_ROOT; //ничего не выдает
>echo $REMOTE_ADDR; //ничего не выдает
Я таких переменных не знаю. Я знаю суперглобальный массив $_SERVER, чего и Вам желаю. | |
|
|
|
|
|
|
|
для: Trianon
(16.12.2006 в 19:34)
| | Раньше на пхп4 $DOCUMENT_ROOT и $REMOTE_ADDR -работали, поставил пхп5, теперь не работают. Значит, или я что-то не доделал при установки пхп5 или теперь надо использовать суперглобальный массив $_SERVER. | |
|
|
|
|
|
|
|
для: Антоха
(16.12.2006 в 19:43)
| | Вот теперь на ум мне пришло еще кое-что.
Люди добрые, вы не знаете как бы мне просканировать всю сеть, на наличие работающих компов в данный момент. Я конечно и сам предполагаю как его написать, но нужно, чтобы скрипт как-то мгновенно определял, если, например ip - 192.168.1.135 не отвечает перерейти к следующему ip. В общем, нуно быстро просканировать диапазон 192.168.1.[0-255] и выдать результат. | |
|
|
|
|
|
|
|
для: Антоха
(16.12.2006 в 19:43)
| | Дело в том, что в PHP 5 по умолчанию отключена директива register_globals - её нужно либо включить, а лучше сразу использовать суперглобальный массив $_SERVER, так как директиву register_globals исключат в PHP 6. Подробнее о массиве можно почитать в статье http://www.softtime.ru/info/articlephp.php?id_article=69. | |
|
|
|
|
|
|
|
для: cheops
(17.12.2006 в 00:25)
| | Спасибо учту. | |
|
|
|
|
|
|
|
для: Антоха
(17.12.2006 в 07:16)
| | Ну, а кто-нибудь поможет мне с вопросом, который я задавал:
Нуно быстренько просканировать ip-ки (диапазон 192.168.1.[0-255]), на наличие работающих компов в данный момент.
Спасибо. | |
|
|
|
|
|
|
|
для: Антоха
(17.12.2006 в 07:21)
| | Быстренько вряд ли получится... если ли на этих машинах какой-то открытый порт? | |
|
|
|
|
|
|
|
для: cheops
(17.12.2006 в 13:29)
| | Я точно не знаю. Можно наверное проверят по 139 или 445.
Запускаю cmd.exe. Пишу netstat -an 4
Захожу на любой комп, допустим под именем XXX.
В ком. строке высвечивается:
TCP 192.168.1.135:3799 192.168.1.201:139 TIME_WAIT
Где
192.168.1.135:3799 - мой комп
192.168.1.201:139 - XXX комп
Так что может 139 попробовать? Или уж объясните, как определить открытый порт.
Интересно, а как тогда ping работает?
Он ведь тоже наверное по какому-то порту отправляет пакеты? | |
|
|
|
|
|
|
|
для: Антоха
(17.12.2006 в 15:30)
| | Для быстренькой проверки используйте программу LanScope. | |
|
|
|
|
|
|
|
для: Саня
(17.12.2006 в 15:54)
| | Программа - это конечно хорошо, но хотелось бы "самому" написать скриптик, чтобы знать как всё работает. А прогу (я считаю) нужно устанавливать если твой код/скрипт очень медленно работает или если это не возможно сделать данным языком программирования.
Все-таки, самому приятнее будет, если это твой код/скрипт.
Так шо, если на пхп такую задачку нельзя сделать или сделать, но с большими жертвами чего-либо, то я только "ЗА" использование определенной программы.
В общем буду ждать, может кто-нибудь сможет мне помочь. | |
|
|
|
|
|
|
|
для: Антоха
(17.12.2006 в 16:18)
| | Вы можете запускать любую другую программу из скрипта, правда она должна возвращать результаты работы в стандартный поток вывода, т.е. быть консольной... можно использовать утилиту ping, но она достаточно долго гоняет пакеты.
<?php
echo `ping 127.0.0.1`;
?>
|
| |
|
|
|
|
|
|
|
для: Антоха
(17.12.2006 в 16:18)
| | php не для этих целей, так что не стоит изобретать ручку для космоса со удержанием давления когда можно использовать простой карандаш.... | |
|
|
|
|
|
|
|
для: z0rg
(17.12.2006 в 23:56)
| | Ну ладно, буду тогда использовать ping.
Где-то уходит минута на проверку диапазона 192.168.1.[0-255]
В принципе не так критично, при том что результаты выдаются приблизительно каждые 5 сек, так что эффекта зависания нет.
Еще бы сразу выдавать результаты при каждом проходе цикла, а ни копить в буфере (echo).
Может кто-нибудь знает как это сделать.
Пробовал применять flush() - че то не работает.
<?php
for($i = 1; $i < 255; $i++) {
echo `ping 192.168.1.$i -n 1 -l 1 -w 1`;
flush();
}
?>
|
Наверное неправильно делаю? | |
|
|
|
|
|
|
|
для: Антоха
(15.12.2006 в 02:41)
| |
//Адрес подсети, может быть недоступна
$subnet=getenv(HTTP_FORWARDED_FOR);
|
| |
|
|
|
|
|
|
|
для: Shest
(15.12.2006 в 07:08)
| | Ну может кто-нибудь даст ответ? | |
|
|
|
|
автор: PHP 5.2.0 (18.12.2006 в 13:51) |
|
|
для: Антоха
(17.12.2006 в 09:40)
| | Подскажите установил PHP5 перестали объявляться глобальные переменные. Т.е. запись вида
вернет значение переменной var, когда как
<?
$var = $_GET['var'];
echo $var;
?>
|
возвращает пустое значение. | |
|
|
|
|
|
|
|
для: PHP 5.2.0
(18.12.2006 в 13:51)
| | Автор: PHP 5.2.0 - Ты зачем пишешь вопросы в моей теме. Пожалуйста создай новую тему и опиши там свой вопрос. Тебе же лучше будет, быстрее ответят.
А эту тему можно закрывать. | |
|
|
|