22/02/2008

Creare un mini-webserver di emergenza da script

A cura di Efran Cobisi
Tag: Network


Grazie alla completa integrazione con il framework .NET, Windows PowerShell espone una vastissima gamma di funzionalità pronte all'uso, alla pari dei cugini linguaggi di sviluppo C# e VisualBasic .NET.
Raccogliendo la sfida lanciata in un blog nei giorni scorsi, in questo snippet dimostriamo quanto sia facile, semplice, ordinato e coerente sviluppare una sorta di server web in formato ridotto, capace di rispondere a qualsiasi richiesta sempre e soltanto con una pagina HTML statica, definita all'interno dello script stesso.

# Creazione ed avvio del listener HTTP (locale, porta 12345) $httpListener = New-Object Net.HttpListener $httpListener.Prefixes.Add("http://localhost:12345/") $httpListener.Start() # Ciclo di ricezione delle connessioni in entrata while ($true) { # Recupero del contesto HTTP $httpContext = $httpListener.GetContext() $httpResponse = $httpContext.Response # Aggiunta degli header allo stream di risposta HTTP $httpResponse.Headers.Add("Content-Type", "text/html") $httpResponse.Headers.Add("Server", "PowerShell/1.0") # Scrittura del corpo dell'output $writer = New-Object IO.StreamWriter($httpResponse.OutputStream, [Text.Encoding]::UTF8) $writer.Write('<html><body>Cosa fai qui? Corri a ') $writer.Write('visitare <a href="http://www.powershell.it">powershell.it</a>! :)') $writer.Write('</body></html>') $writer.Close() } # Chiusura del listener HTTP (comunque forzata da CTRL+Break) $httpListener.Stop()
Commenti

Nessun commento disponibile.