fsockopen и бродкаст

Myst

Новичок
fsockopen и бродкаст

Подскажите возможно ли такое ,
PHP:
fsockopen(udp://255.255.255.255:порт)
Тоесть я хочу просканировать весь диапазон и получить ответ из открытых портов дальше прочитать и сформировать данные из ответа , ето айпи адреса.

Это нужно для онлайн статуса игровых серверов.

И есть ли альтернатива ?
 

Myst

Новичок
Автор оригинала: WP
Да.
:) Шутиш , представь диапазон на 5 сегментов *.*.0.-*.*.5.255 и каждому нада отправить запрос , сколько я буду ждать ответа , вместо етого послать всего один запрос на бродкаст , вот только не могу понять как ето сделать :(.
 

Navarro

Новичок
А с чего ты решил что сможешь отправить запрос на 5 подсетей?
 

Myst

Новичок
Автор оригинала: Navarro
А с чего ты решил что сможешь отправить запрос на 5 подсетей?
Хоть на 5 , хоть на 25 , какая разница ,через бродкаст можно отправить запрос на все сегменты и все айпи , дело в другом , я в самом начале спросил , возможно ли такое на PHP ?.
 

Navarro

Новичок
Если бы так было на самом деле, то интернет умер при рождении.
 

Gorynych

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

Myst

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

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

И опять же к началу , возможно ли такое на пхп ?
 

SiMM

Новичок
> возможно ли такое на пхп?
А не на PHP это возможно? Если да - то и делай по аналогии. Если нет - то PHP тут не при чём.
 

Gorynych

Посетитель PHP-Клуба
Myst

Ваш бродкаст (broadcast - широковещательный) адрес. Бродкаст адрес используется для раздачи бродкаст пакетов на все машины вашей подсети. Поэтому, если хост-номера машинам вашей подсети даны по последним байтам IP-адресов (сетевая маска 255.255.255.0), ваш бродкаст адрес будет получен из вашего сетевого адреса наложением 0.0.0.255. Например, если ваш IP адрес 128.253.154.32 и ваша сетевая маска 255.255.255.0, то ваш бродкаст адрес 128.253.154.255.

Чисто исторически сложилось, что некоторые сети настроены на использование сетевых адресов как бродкаст адресов. Если у вас возникнут сомнения, пообщайтесь с вашим сетевым администратором. (Во многих случаях бывает достаточно продублировать сетевую настройку других машин в вашей подсети, заменяя, разумеется IP адреса).

Если только вы используете loopback, у вас не будет бродкаст адреса.
можно ли отправить корректно сформированный пакет на конкретный адрес средствами PHP? Ну да, почему нет-то? Можно же открыть сокет и напрямую общаться с SMTP-сервером. Особой разницы думаю нет...

-~{}~ 20.06.06 16:05:

Myst
я вдруг подумал (глядя на самый первый постинг), а у Вас не с самой ф-ей fsockopen(...) - http://ru.php.net/manual/en/function.fsockopen.php - проблемы? Глупый вопрос, конечно, но вдруг не лады всего лишь с параметрами и т.п.
 

Myst

Новичок
To SiMM на других языках возможно , но я же спрашивал про пхп , ведь функции вроде как отличаютса в разных языках по аналогии , если пхп может все то что и P , C c работой сетевыми протоколами то я буду только рад ето услышать.

To Gorynych
По поводу адресов , то ето для локальной сети , в инете бродкаста вроде как нету , маршрутизаторами рубается , дело в том что ф-ей fsockopen() я могу конектитса на определенный айпи с открытым портом , и получить статус его , а вот с бродкастом сложней , тут нужно данные получить с разных адресов которые я должен поместить в масив и из масива их уже выводить, ведь на определенный айпи когда конект идет вытянуть статус не проблема , а с бродкаста нужно получить еще и сам айпи который ответил , ну ничего думаю нада почитать немного доков , манов и решение найдется.
 

SiMM

Новичок
> ведь функции вроде как отличаютса в разных языках по аналогии
Практически не отличаются. И вам, если что-то и курить, то, ИМХО, [m]sockets[/m].
 
Сверху