Здравствуйте, гость ( Вход | Регистрация )
Aug 31 2006, 09:38
Сообщение
#1
|
|
|
N.N.G. ![]() ![]() ![]() Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
кратко:
Код <?php function status_tcp($ip,$port) { if ($ip=="") { $ip="192.168.1.2"; } if (@fsockopen($ip, $port, $errno, $errstr, 0.3)) { echo "<font color=blue>OnLine</font><p>"; } else { echo "<font color=red>OffLine</font><p>"; } } function status_udp($ip,$port) { if ($ip=="") { $ip="udp://192.168.1.2"; } if (@fsockopen($ip, $port, $errno, $errstr,1)) { echo "<font color=blue>OnLine</font><p>"; } else { echo "<font color=red>OffLine</font><p>"; } } ?> Основная чать. В ней происходят все расчеты Код <CENTER> <TABLE BORDER CELLPADDING=5> <CAPTION ALIGN=top><h2>Статус серверов</h2> </CAPTION> <TR> <TD><b> Название сервера</b> </TD> <TD><b> IP - сервера</b> </TD> <TD><b> Статус сервера</b> </TD> <TD><b> Дополнительно </b> </TD> </TR> <TR> <TD NOWRAP >NFS Undeground 1.4</TD> <TD>wow.cheb.ru</TD> <TD> <?php status_tcp("",10800) ?> <TD> <a href="http://wow.cheb.ru/forums/index.php?showtopic=15">Настройка игры</a> <p> </TR> <TR> <TD NOWRAP >Quake 3 1.32 </TD> <TD>wow.cheb.ru</TD> <TD> <?php status_udp("", 27960) ?> <TD> <a href="http://wow.cheb.ru/forums/index.php?showtopic=8&pid=18&st=0&#entry18">Настройка игры</a> <p> </TR> Теперь проблема. для открытия тцп порта все нормально и правильно. Но когда и хочю проверить UDP порт. Он мне всегда выдает "OnLine" Прочитал много мануало, читал в нете. Ничего не помогло. едиственное отличие ТЦП и УДВ это время подключеия к порты. В книгах его вообще нет. Сообщение отредактировал LLeSS - Aug 31 2006, 10:49 |
|
|
|
![]() |
Sep 2 2006, 10:42
Сообщение
#2
|
|
|
Пользователь ![]() ![]() Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
SiMM, а вот не говорил бы ты намеками, и не возникало бы у тебя сомнений, что их у тебя поняли.
LLeSS, как ты спрашиваешь, так тебе и отвечают. Все равно надо будет что-то туда посылать и проверять результат. Если там Quake, то попробуй так (тут PHP 4.2+): Код function getvalue($srv_value, $srv_data)
{ $srv_value = array_search ($srv_value, $srv_data); if ($srv_value === false) { return false; } else { return $srv_data[$srv_value+1]; } } function status_quake3($ip, $port) { $result = false; $socket = fsockopen("udp://".$ip, $port, $errno, $errstr, 50); if ($socket === false) { echo "[$errno] - $errstr<br>\n"; } else { socket_set_timeout($socket, 50); fwrite($socket, "\xFF\xFF\xFF\xFFgetstatus\x00"); $s = fread($socket, 2048); if ($s) { $players_info = explode("\n", $s); $game_info = explode("\\", $players_info[1]); $sv_hostname = getvalue("sv_hostname", $game_info); if ($sv_hostname) { echo "$sv_hostname\n"; echo getvalue("g_gametype", $game_info); echo "\n"; echo getvalue("gamename", $game_info); echo "\n"; echo getvalue("version", $game_info); echo "\n"; echo getvalue("mapname", $game_info); echo "\n"; echo getvalue("sv_maxclients", $game_info); echo "\n"; echo getvalue("g_needpass", $game_info); echo "\n"; $result = true; } } } fclose($socket); return $result; } if (status_quake3("127.0.0.1", 27960)) { echo "true\n"; } else { echo "false\n"; } |
|
|
|
LLeSS PHP fsockopen Aug 31 2006, 09:38
LInfo Пример 2. Using UDP connection
Код<?php
... Aug 31 2006, 12:34
jay Цитата(LInfo @ Aug 31 2006, 13:34) Пример... Aug 31 2006, 14:35
karpen Цитата из книги "Протоколы TCP/IP", том ... Aug 31 2006, 13:02
LLeSS такие наивные... .я это уже все 100 раз пробовал )... Aug 31 2006, 14:44
pavel Лучше проверять через определенный интервал (5 мин... Aug 31 2006, 18:18
jay у нас PHP 4, а это как я помню появилось только в ... Aug 31 2006, 19:38
pavel Там серваки поддерживаются вплоть до такого:
Кодre... Aug 31 2006, 19:53
JoNy202 надо проверять не только соединение по определенно... Aug 31 2006, 20:35
pavel Цитата(JoNy202 @ Aug 31 2006, 21:35) надо... Aug 31 2006, 21:20
SiMM Никогда не понимал чудаков, которые задают вопросы... Sep 1 2006, 00:14
pavel честно говоря ответов типа "PHP4 forever... Sep 1 2006, 00:32
SiMM Во всей теме только два попадания - пост #3 (котор... Sep 1 2006, 00:49
pavel Цитата(SiMM @ Sep 1 2006, 01:49) мануалы ... Sep 1 2006, 09:56
SiMM Цитата(pavel @ Sep 1 2006, 10:56) или ты ... Sep 1 2006, 10:12

pavel Цитата(SiMM @ Sep 1 2006, 11:12) Если ты ... Sep 1 2006, 11:33
JoNy202 Цитата(pavel @ Sep 1 2006, 10:56) 3-й - в... Sep 1 2006, 10:15
LLeSS вы непоняли вопрос? я бы хотел получить в итоге ра... Sep 1 2006, 14:36
SiMM Жжошь.
Я пожалуй последний раз скажу - если челове... Sep 1 2006, 14:54
LLeSS Цитата(SiMM @ Sep 1 2006, 01:14) Никогда ... Sep 1 2006, 18:23
SiMM Цитата(pavel @ Sep 2 2006, 11:42) LLeSS, ... Sep 3 2006, 00:52
pavel Посмотрел на 213.24.223.171, в скрипте надо поменя... Sep 2 2006, 18:45
jay спасибо тебе за помощь, думаю с остальными играми ... Sep 2 2006, 22:25
LLeSS сенкс. Sep 2 2006, 23:06
mgk сам столкнулся с такой проблемой...
с играми дейст... Sep 29 2006, 10:31
SiMM Цитата(mgk @ Sep 29 2006, 11:31) но со ст... Sep 29 2006, 11:08
mgk Цитата(SiMM @ Sep 29 2006, 12:08) Стандар... Sep 29 2006, 20:11
SiMM Цитата(mgk @ Sep 29 2006, 21:11) фишка в ... Sep 29 2006, 21:21
mgk Цитата(SiMM @ Sep 29 2006, 22:21) Этого н... Sep 29 2006, 21:39
pavel Цитата(mgk @ Sep 29 2006, 11:31) $so... Oct 1 2006, 01:16![]() ![]() |
|
Текстовая версия | Сейчас: 3rd December 2025 - 21:22 |