mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Improved the discovery of IP based devices
This commit is contained in:
@@ -69,17 +69,10 @@ foreach (dbFetchRows($sql, array($deviceid)) as $entry)
|
||||
}
|
||||
arp_discovery_add_cache($ip);
|
||||
|
||||
// Log reverse DNS failures so the administrator can take action.
|
||||
$name = gethostbyaddr($ip);
|
||||
if ($name != $ip) { // gethostbyaddr returns the original argument on failure
|
||||
echo("+");
|
||||
$names[] = $name;
|
||||
$ips[$name] = $ip;
|
||||
}
|
||||
else {
|
||||
echo("-");
|
||||
log_event("ARP discovery of $ip failed due to absent reverse DNS", $deviceid, 'interface', $if);
|
||||
}
|
||||
echo("+");
|
||||
$names[] = $name;
|
||||
$ips[$name] = $ip;
|
||||
}
|
||||
echo("\n");
|
||||
|
||||
|
||||
@@ -22,12 +22,14 @@ function discover_new_device($hostname)
|
||||
}
|
||||
if ($debug) { echo("discovering $dst_host\n"); }
|
||||
$ip = gethostbyname($dst_host);
|
||||
if ($ip == $dst_host) {
|
||||
if ($debug) { echo("name lookup of $dst_host failed\n"); }
|
||||
return FALSE;
|
||||
} else {
|
||||
if ($debug) { echo("ip lookup result: $ip\n"); }
|
||||
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === FALSE && filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === FALSE) {
|
||||
// $ip isn't a valid IP so it must be a name.
|
||||
if ($ip == $dst_host) {
|
||||
if ($debug) { echo("name lookup of $dst_host failed\n"); }
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
if ($debug) { echo("ip lookup result: $ip\n"); }
|
||||
|
||||
$dst_host = rtrim($dst_host, '.'); // remove trailing dot
|
||||
|
||||
|
||||
Reference in New Issue
Block a user