簡體   English   中英

如何在php中獲取活動網絡接口的列表

[英]How to get a list of active network interfaces in php

所以我想要的是通過使用套接字函數的php獨立實現此目的-

$  sudo ifconfig | cut -d " " -f1 | awk 'NF==1{print $1}'
 eth0
 lo
 wlan0

我知道我可以使用system命令來做到這一點,但是為此我需要更改ifconfig (root privelaged command)上的粘位權限,或者需要編寫C包裝程序。

因此,請告訴我通過PHP實現此目標的最佳方法。

我的目的是使用使用HTML和PHP開發的應用程序向前端用戶顯示可用的網絡接口列表。

在基於Debian的發行版上,您可以使用我編寫的該庫。 它可以讀/寫/ etc / network / interfaces

https://github.com/carp3/networkinterfaces

<?php
//include composer autoloader
include 'vendor/autoload.php';

// 'import' NetworkInterfaces class
use NetworkInterfaces\Adaptor;
use NetworkInterfaces\NetworkInterfaces;

// create new handle from /etc/networking/interfaces
$handle = new NetworkInterfaces('/etc/networking/interfaces');

// parse file
$handle->parse();

// print all adaptors
var_dump($handle->Adaptors);

您可以將您的網絡服務器以(通常是www或www-data)身份運行的用戶添加到/etc/sudoers 然后,您應該能夠通過系統調用訪問ifconfig命令。 顯然,這會對安全造成影響。 如果采用該路由,則應限制對ifconfig命令的訪問。

$out = system("sudo ifconfig ...");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM