【问题标题】:Filtering out PHP shell_exec output result过滤掉 PHP shell_exec 输出结果
【发布时间】:2020-10-27 15:44:18
【问题描述】:

我正在尝试使用 php 创建一种在我的网络上查找 Raspberry pi 的方法,我想知道如何过滤结果以便我只能看到一台特定计算机的 IP 地址?

<?php
$output = shell_exec('sudo arp-scan --localnet');
echo "<pre>$output</pre>";
?>

这是执行php代码时的输出示例。

Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 256 hosts (https://github.com/royhills/arp-scan)

192.168.1.62    b8:29:0b:ed:e0:27   Raspberry Pi Foundation
192.168.1.95    14:6b:00:00:ec:59   (Unknown)
192.168.1.72    24:46:11:00:ee:3f   (Unknown)


15 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 256 hosts scanned in 3.722 seconds (68.78 hosts/sec). 15 responded

我正在尝试找到一种方法来过滤所有文本,但在本例中保留 Raspberry Pi Foundation 的 IP 地址 192.168.1.62

【问题讨论】:

  • 将命令 sudo arp-scan --localnet 更改为 "sudo arp-scan --localnet | awk '/Raspberry Pi Foundation/ { print $1 }'"
  • 那行不通。
  • 抱歉,它可以工作,我必须在 visudo 中添加 awk 和打印权限,谢谢。
  • 如何将结果分成 url?我试过了,但运气不好 echo 'RASPBERRY';

标签: php linux raspberry-pi shell-exec


【解决方案1】:

更改命令

sudo arp-scan --localnet 

到:

"sudo arp-scan --localnet | awk '/Raspberry Pi Foundation/ { print $1 }'"

【讨论】:

    【解决方案2】:

    preg_match_all 最适合这类问题

    <?php
    $text = 'Interface: wlan0, datalink type: EN10MB (Ethernet)
    Starting arp-scan 1.9.5 with 256 hosts (https://github.com/royhills/arp-scan)
    
    192.168.1.62    b8:29:0b:ed:e0:27   Raspberry Pi Foundation
    192.168.1.95    14:6b:00:00:ec:59   (Unknown)
    192.168.1.72    24:46:11:00:ee:3f   (Unknown)
    
    
    15 packets received by filter, 0 packets dropped by kernel
    Ending arp-scan 1.9.5: 256 hosts scanned in 3.722 seconds (68.78 hosts/sec). 15 responded
    ';
    $regMatch = '/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\ \ \ (.*)\ \ \ (.*)/';
    preg_match_all( $regMatch, $text, $out, PREG_PATTERN_ORDER);
    print_r($out);
    
    print_r($out[2]);  #vendor array
    
    

    【讨论】:

      猜你喜欢
      • 2018-03-05
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 2021-07-11
      • 1970-01-01
      相关资源
      最近更新 更多