Windows (not even WindowsNT) doesn't have Set-UID. The
closest thing is probably LogonUser() followed by
CreateProcessAsUser(). Though, this requires that you
stash an unencrypted password somewhere and already have
some special privileges, which makes it both less useful
and a worse security risk than SUID (which is already
a big security risk).
But that doesn't matter because WindowsNT doesn't require
you to have privileges in order to send ICMP packets. You
just have to know how to use the advanced socket interfaces.
Net::Ping just incorrectly assumes that only VMS is this way.
Just comment out the line:
croak("icmp ping requires root privilege") if ($> and $^O ne 'VMS');
and Net::Ping can do ICMP pings under WindowsNT just fine!
Gee, I wish I'd know the fix was that easy a long time ago!. |