У яких сценаріях я буду використовувати `netsh http add urlacl`?


14

Я намагаюся зрозуміти, в якому сценарії мені потрібно буде використовувати таку команду:

netsh http add urlacl url=http://server1:1234/ user=Everyone

Це як використовувати hostsфайл, де я можу підключити конкретну адресу до свого комп'ютера? (Я не думаю, що так).

У документах не так ясно (мені):

Netsh - це утиліта сценаріїв командного рядка, яка дозволяє вам, локально або віддалено, відображати або змінювати мережеву конфігурацію комп'ютера, який зараз працює. Netsh також забезпечує функцію сценарію, яка дозволяє запускати групу команд у пакетному режимі проти визначеного комп'ютера. Netsh також може зберегти сценарій конфігурації у текстовому файлі для архівних цілей або допомогти вам налаштувати інші сервери.

Питання:

Може хтось, будь ласка, надасть сценарій реального життя (+ реалізація), де я хочу його використовувати?

Додаткова інформація: Я прочитав це запитання, коли хлопець, який намагався отримати доступ (через C #):

http://localhost:1234 працює, але

http://server1:1234 не вдається

(Однак - я не розумію, чому він не використав hostsфайл, який міг би вирішити його) - Але тоді інша людина відповіла, що netshзробить цю роботу.
Тож я гадаю, що мені чогось тут не вистачає.


Я прекрасно знаю, для чого використовується файл хостів, який я роблю щодня протягом останніх 1 років. Я не розумію, чим код у моєму запитанні відрізняється від файлу хостів. Здається, що вони обидва роблять те саме. І, на жаль, ти не поставив різниці у своїй відповіді
отримали

Відповіді:


18

Ви б використали netsh http змінюючи конфігурацію http.sys, яка абсолютно відрізняється від hostsфайлу, працюючи на значно нижчому рівні Windows. Цей рівень є рівним, який обробляє запуск HTTP-сервера локально на вашому комп’ютері , тому стосується запитів, що надходять у ваш комп’ютер, а не тих, що виходять в Інтернет.

Це архітектура Windows для обслуговування запитів URL:

http.sys архітектура

http.sys є драйвером, який прослуховує трафік HTTP і розсилає запити на основі URL-адреси в процеси, тому кілька процесів можуть прослуховувати трафік HTTP на одному порту.

http.sysбула представлена ​​на сервері Windows 2003. Раніше програми просто відкривали сокет на кінцевій точці (IP: Порт), прослуховуючи вхідний трафік і аналізуючи його. Проблема полягала в тому, що це унеможливило використання всіх прикладних портів 80 (http) і 443 (https), оскільки в моделі сокета лише одна програма може прослуховувати кінцеву точку в будь-який момент часу.

Коли Інтернет-інформаційні послуги (IIS) веб-сервер або будь-яка програма, яка використовує API сервера HTTP, прослуховує деякий шлях запиту HTTP, їм потрібно зареєструвати префікс URL http.sys. Цей процес ми називаємо реєстрацією .

Коли вхідний запит обрано користувачем http.sys і доставляється до потрібної зареєстрованої програми, це називається маршрутизацією .

Будь-яка програма, що працює в режимі адміністратора, може зареєструватися за URL-адресою. Для netsh http add urlacl отримання запиту потрібно використовувати не-адміністратор .

Висновок: Оскільки ви не будуєте сервер URL-адрес низького рівня, що працює в режимі без адміністратора, у вас немає підстав використовувати netsh http add urlacl .

Список літератури:


Надайте, будь ласка, сценарій, коли щось на кшталт: "користувач хоче підключитися до вашого iis з ...."
Royi Namir

Це метод для додатків, які працюють поруч із IIS. Якщо він зареєструється для префікса URL-адреси, програма отримає всі свої запити безпосередньо, а не через IIS, тобто не потрібно писати як розширення IIS, а також не потрібно встановлювати IIS (це теоретично - я не ' не знаю, наскільки добре на практиці http.sys не залежить від IIS).
harrymc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.