2012-07-11 32 views
6

Duplicar posible:
Why does ping work without administrator privileges?¿Cómo es que ping no necesita privilegios administrativos en Windows?

De un artículo MSDN en TCP/IP sockets primas:

... Es importante entender que algunos conectores del tipo SOCK_RAW puede recibir muchos datagramas inesperados. Por ejemplo, un programa de PING puede crear un socket de tipo SOCK_RAW para enviar peticiones de eco ICMP y recibir respuestas ....

Este pasaje sugiere que el fin de realizar un ping ICMP, hay que utilizar los conectores directos en Windows plataformas. Sin embargo, el mismo artículo también dice:

Nota: de utilizar un receptáculo de tipo SOCK_RAW requiere privilegios administrativos. Los usuarios que ejecutan aplicaciones Winsock que usan sockets sin formato deben ser miembros del grupo Administradores en la computadora local, de lo contrario, las llamadas sin formato fallarán con un código de error de WSAEACCES. En Windows Vista y posterior, el acceso para sockets sin formato se aplica en la creación del socket. En versiones anteriores de Windows, el acceso para sockets sin formato se aplica durante otras operaciones de socket.

Sin duda no es necesario ser un administrador para ping otros hosts. Entonces, ¿recibe ping.exe un trato especial, incluso usa tomas sin procesar o hay algo más que me falta?

+3

¿Tal vez 'ping' no está utilizando conectores crudos? –

+0

"Este pasaje implica que para realizar un ping ICMP, uno debe usar sockets sin formato en plataformas Windows". -- No, no lo hace. – tenfour

+0

@tenfour Tienes razón * implica * es demasiado fuerte de una palabra. – Tibor

Respuesta

5

Como comentó Uwe, ping simplemente no usa conectores crudos. Utiliza una API específica que envía solicitudes de eco llamadas IcmpSendEcho o IcmpSendEcho2.

Puede usar Dependency Walker en c:\windows\system32\ping.exe para verlo usted mismo.

+2

Espero que la verdadera razón sea la historia; en sistemas basados ​​en Unix, el ping a menudo requiere que el usuario esté en un grupo especial, o más típicamente el programa ping tiene un bit especial para ejecutar como ese grupo (pero internamente no permitirá que los usuarios comunes generen inundaciones de ping). Windows hereda de versiones anteriores de Windows sin un concepto de cuentas de usuario o privilegios, por lo que probablemente exista una expectativa entre los usuarios de que el ping funcione como solía hacerlo. –

Cuestiones relacionadas