2016-12-23 2 views
-2

Я понял, как запустить Arp-scan и показать результаты на странице. Теперь мне нужно вставить информацию в базу данных Mysql. Я знаю, как вставить одну запись, но я борюсь с тем, как получить много записей в db. Кажется, я не обволакиваю голову. Вот мой кодУ меня есть информация, как мне попасть в мой db?

<?php 
    $link = mysqli_connect("localhost", "user", "password", "mydb"); 
    // Check connection 
    if($link === false){ 
    die("ERROR: Could not connect. " . mysqli_connect_error()); 
    } 
    error_reporting(E_ALL); 
     ini_set('display_errors', '1'); 
    $output = shell_exec("sudo arp-scan --interface=eth0 --localnet --numeric --   quiet| grep -e 80:82:87"); 
foreach (explode("\n", $output) as $host) 
{ 
    list($ip, $mac) = array_pad(explode("\t", $host),2,null); 

    echo "$ip $mac<br>"; 
} 
// attempt insert query execution 

$sql = "INSERT INTO phones (ipadd, mac) VALUES ('$ip', '$mac')"; 
if(mysqli_query($link, $sql)){ 
    echo "Records added successfully."; 
} else{ 
    echo "ERROR: Could not execute $sql. " . mysqli_error($link); 
} 

mysqli_close($link); 
?> 

Любая помощь очень ценится

+0

Поместите свой запрос sql внутри своего цикла foreach. – aynber

ответ

0
<?php 

$values = array(); 
foreach (explode("\n", $output) as $host) 
{ 
    list($ip, $mac) = array_pad(explode("\t", $host),2,null); 
    $values[] = '("'.$ip.'", "'.$mac.'")'; 
} 
// attempt insert query execution 

$sql = "INSERT INTO phones (ipadd, mac) VALUES ".implode(',', $values); 
if(mysqli_query($link, $sql)){ 
    echo "Records added successfully."; 
} else{ 
    echo "ERROR: Could not execute $sql. " . mysqli_error($link); 
} 

mysqli_close($link); 

Это создаст массив строк в следующем формате:

("IP", "MAC") 

и соединить их позже с помощью запятой

("IP", "MAC"),("IP2", "MAC2") 

и добавить в запрос

+0

Это работает отлично, за одну мелочь. Он вводит пустой стол в таблицу. Otherwiae, это именно то, что мне нужно! –

+0

Возможно, возникла проблема с вашим кодом, который извлекает ip и mac из вывода. Честно говоря, я не тестировал его с выходом arp-scan. – Adikso

Смежные вопросы