Я пробую пакет PEAR Net_Nmap отсюда:
https://pear.php.net/package/Net_Nmap/
На моем компьютере с Windows 10 установлен Nmap.
Я нашел следующий код, который должен делать эту работу.
Что-то, что я должен настроить, прежде чем использовать PEAR?
Я получаю 2 ошибки:
Предупреждение: require_once (XML / Parser.php): не удалось открыть поток: нет такого файла или каталога в C: \ xampp \ htdocs \ Net_Nmap-master \ Net \ Nmap \ Parser.php в строке 31
Неустранимая ошибка: require_once (): не удалось открыть обязательный файл ‘XML / Parser.php’ (include_path = ‘C: \ xampp \ php \ PEAR’) в C: \ xampp \ htdocs \ Net_Nmap-master \ Net \ Nmap \ Parser.php на линии 31
<?php
// Scan network to retrieve hosts and services information.
require_once 'Net/Nmap.php';
//Define the target and options
$target = array('193.95.13.16','www.google.com');
$options = array('nmap_binary' => 'C:\Program Files (x86)\Nmap');
try {
$nmap = new Net_Nmap($options);
$nmap_options = array(
'os_detection' => true,
'service_info' => true,
'port_ranges' => 'U:53,111,137,T:21-25,80,139,8080',
// Only specified ports
);
$nmap->enableOptions($nmap_options);
// Scan
$res = $nmap->scan($target);
// Get failed hosts
$failed_to_resolve = $nmap->getFailedToResolveHosts();
if (count($failed_to_resolve) > 0) {
echo 'Failed to resolve given hostname/IP: ' .
implode (', ', $failed_to_resolve) .
"\n";
}
//Parse XML Output to retrieve Hosts Object
$hosts = $nmap->parseXMLOutput();
//Print results
foreach ($hosts as $key => $host) {
echo 'Hostname: ' . $host->getHostname() . "\n";
echo 'Address: ' . $host->getAddress() . "\n";
echo 'OS: ' . $host->getOS() . "\n";
echo 'Status: ' . $host->getStatus . "\n";
$services = $host->getServices();
echo 'Number of discovered services: ' . count($services) . "\n";
foreach ($services as $key => $service) {
echo "\n";
echo 'Service Name: ' . $service->name . "\n";
echo 'Port: ' . $service->port . "\n";
echo 'Protocol: ' . $service->protocol . "\n";
echo 'Product information: ' . $service->product . "\n";
echo 'Product version: ' . $service->version . "\n";
echo 'Product additional info: ' . $service->extrainfo . "\n";
}
}
}
catch (Net_Nmap_Exception $ne) {
echo $ne->getMessage();
}
?>
Вы не использовали Установщик PEAR установить пакет net_nmap, но, вероятно, скачал .tgz
файл и извлек его.
Теперь вам не хватает зависимостей, которые перечислены в левом нижнем углу страницы Net_NMap. Установите их.
Других решений пока нет …