Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Функция passthru()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите пожалуйста разобраться.
SofiaKit
Отправлено: 23 Апреля, 2011 - 14:14:01
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Использовала такую функцию:

Для вывода в локальной сети интерфейс подключения. Но она немного неудобна в читабельности. Выводит:
Interface: 136.12.11.201 --- 0xc Internet Address Physical Address Type 136.12.11.9 00-1d-60-25-fd-2f dynamic

Хотелось бы по отдельности отсортировать и сделать читабельным, вот так вот:
IP: 136.12.11.9
Шлюз: 136.12.11.201
MAC: 00-1d-60-25-fd-2f

Помогите пожалуйста решить эту задачку.
 
 Top
EuGen Администратор
Отправлено: 23 Апреля, 2011 - 14:19:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Выбирайте, скажем, при помощи регулярных выражений.

Задача не в этом:
http://forum.php.su/topic.php?fo...=35&topic=60
?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SofiaKit
Отправлено: 23 Апреля, 2011 - 15:38:51
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




по ссылке тему читала, не разобралась, гугл тоже не помог. вот очень надеюсь что тут подскажут. Может все-же возможно как-то?
 
 Top
koval
Отправлено: 23 Апреля, 2011 - 15:49:53
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Регуляркой возможно.
 
 Top
SofiaKit
Отправлено: 23 Апреля, 2011 - 16:07:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




как?
 
 Top
EuGen Администратор
Отправлено: 23 Апреля, 2011 - 16:52:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




София, Вам нужно почитать наш урок о регулярных выражениях. Навскидку:
PHP:
скопировать код в буфер обмена
  1.  
  2. $string=passthru('arp -a '.$ip);
  3. $rgMatches=array();
  4. preg_match('/Interface\:\s+([\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3})\s+(.*?)Internet\s+Address\s+Physical\s+Address\s+Type\s+([\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3})\s+ ([0-9a-f]{2}\-[0-9a-f]{2}\-[0-9a-f]{2}\-[0-9a-f]{2}\-[0-9a-f]{2}\-[0-9a-f]{2})\s+(.*?)/i', $string, $rgMatches);
  5. echo("
  6. IP: ".$rgMatches[1]."
  7. Шлюз: ".$rgMatches[3]."
  8. MAC: ".$rgMatches[4]."
  9. ");
  10.  

Однако если в некоторых случаях вывод будет отличаться - может не сработать. Вам нужно будет учесть все возможные варианты вывода от команды arp


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SofiaKit
Отправлено: 23 Апреля, 2011 - 17:29:16
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




жаль, ваш скрипт работает так-же как и у меня, нечитабельно. Недовольство, огорчение
 
 Top
EuGen Администратор
Отправлено: 23 Апреля, 2011 - 17:35:45
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Да, ведь passthru не возвращает результат, эту деталь я не учел, когда скопировал код из первого сообщения темы. Нужен exec:
PHP:
скопировать код в буфер обмена
  1.  
  2. $rgData=array();
  3. exec("arp -a ".$ip, $rgData);
  4. $string=join(' ', $rgData);
  5. //далее разбор
  6.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB