Improved the discovery of IP based devices

This commit is contained in:
laf
2015-07-07 19:43:25 +01:00
parent e818236f84
commit 4e1713bbc5
2 changed files with 10 additions and 15 deletions

View File

@@ -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");

View File

@@ -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