Roy*_*mir 17 window netsh cmd.exe
我试图了解在哪种情况下我需要使用这样的命令:
netsh http add urlacl url=http://server1:1234/ user=Everyone
Run Code Online (Sandbox Code Playgroud)
是否就像使用hosts可以将特定地址连接到我的计算机的文件?(我不这么认为)。
该文档不说清楚(我):
Netsh 是一个命令行脚本实用程序,允许您在本地或远程显示或修改当前正在运行的计算机的网络配置。Netsh 还提供了一个脚本功能,允许您对指定的计算机以批处理模式运行一组命令。Netsh 还可以将配置脚本保存在文本文件中以用于存档或帮助您配置其他服务器。
题:
有人可以提供我想要使用它的真实生活场景(+ 实现)吗?
附加信息: 我读过这个问题,其中一个试图访问(通过 C#)的人:
http://localhost:1234 有效,但是
http://server1:1234 失败
(但是 - 我不明白他为什么不使用hosts可以解决它的文件) - 但是另一个人已经回答说netsh可以完成这项工作。
所以我想我在这里遗漏了一些东西。
har*_*ymc 20
您将netsh http在修改 的配置时使用http.sys,这与hosts文件完全不同,在较低级别的 Windows 上工作。此级别是一个一个处理一个HTTP服务器的运行在本地计算机中,所以涉及的请求来进入你的电脑,而不是那些打算出去到互联网。
这是 Windows 中用于服务 URL 请求的架构:
http.sys 是监听 HTTP 流量并根据 URL 将请求分派给进程的驱动程序,因此多个进程可以在同一端口上监听 HTTP 流量。
http.sys是在 Windows Server 2003 中引入的。之前,应用程序只是在端点 (IP:Port) 上打开一个套接字,侦听传入流量并对其进行解析。问题是这使得所有应用程序无法使用端口 80 (http) 和 443 (https),因为在套接字模型中,在任何给定时间只有一个应用程序可以侦听端点。
当Internet 信息服务 (IIS)
Web 服务器或任何使用 HTTP 服务器 API 的应用程序侦听某些 HTTP 请求路径时,它们需要在http.sys. 我们称这个过程为注册。
当传入请求被选择http.sys并将其传送到正确的注册应用程序时,这称为路由。
任何以管理员模式运行的应用程序都可以注册一个 URL。需要使用非管理员应用程序netsh http add urlacl
来接收请求。
结论:由于您不是在构建以非管理员模式运行的低级 URL 服务器,因此您没有理由使用netsh http add urlacl.
参考 :