diff --git a/usr/local/www/diag_ping.php b/usr/local/www/diag_ping.php
index a84810eba6..655de940c5 100755
--- a/usr/local/www/diag_ping.php
+++ b/usr/local/www/diag_ping.php
@@ -126,12 +126,12 @@ include("head.inc"); ?>
echo "" . gettext("Ping output") . ":
";
echo('
');
$ifaddr = get_interface_ip($interface);
- if ($ifaddr)
+ if ($ifaddr && (is_ipaddrv4($host) || is_hostname($host)))
system("/sbin/ping -S$ifaddr -c$count " . escapeshellarg($host));
else
system("/sbin/ping -c$count " . escapeshellarg($host));
$ifaddr = get_interface_ipv6($interface);
- if ($ifaddr)
+ if ($ifaddr && (is_ipaddrv6($host) || is_hostname($host)))
system("/sbin/ping6 -S$ifaddr -c$count " . escapeshellarg($host));
else
system("/sbin/ping6 -c$count " . escapeshellarg($host));