2013-07-23 18 views
5

ich so weit, so habe ...wie mit Httplistener meine öffentliche IP verwenden

public static HttpListener listener = new HttpListener(); 
public static string startUpPath = Application.StartupPath; 
public WebServer() 
{ 
    listener.Start(); 

    listener.Prefixes.Add("http://(here I want my public ip)/"); 
    Thread t = new Thread(new ThreadStart(clientListener)); 
    t.Start(); 
}

Aber wenn ich die Klasse zu initialisieren sagt es "The specified Network format is not valid"

Die Übersetzung nicht, weil mein visuellen perfekt sein kann Studiosprache ist auf Spanisch. Meine IP sieht wie 95 aus. ^^. ^^^. ^^ und ich denke, dass das Problem sein kann, weil es funktioniert, wenn ich meine lokale IP verwende.

// Edited

Die genaue Ausnahme ist: "El formato del nombre de red no es válido especificado" Welche "The specified network name is not valid". ist, wenn ich das Präfix "http:// + :80/" es noch geht, fügen aber wie kann ich Zugang dazu über meine öffentliche IP?

+0

Was ist die genaue Ausnahme? –

+0

Was passiert, wenn Sie das Präfix 'http: // +: 80 /' hinzufügen? – spender

+0

Ich verstehe das Problem hier nicht, möchten Sie wissen, wie Sie die öffentliche IP-Adresse abrufen oder gibt es ein Problem, wenn es verwendet wird? – Machinegon

Antwort

6

Wenn Sie dies einrichten, sollten Sie Ihre interne IP verwenden, da dies die tatsächliche IP ist, die Sie hören. Um Verkehr von Ihrer externen IP-Adresse zu erhalten, müssen Sie diesen Datenverkehr von Ihrem Router an Ihren Computer weiterleiten, der seine interne IP-Adresse abhört.

Eine Möglichkeit, dies einzurichten, ist die Portweiterleitung. Von Ihrem Router aus möchten Sie den Datenverkehr, der auf Port 80 ankommt, an Ihren Computer leiten.

Weitere Informationen: http://en.wikipedia.org/wiki/Port_forwarding

+1

Eigentlich scheint es das Problem meines Routers zu sein, weil es keine Ports weiterleitet, danke für deine Zeit und deine Antwort, dein Link ist ziemlich interessant und ich werde ihn lesen Jamie. –

1

Als Jamie sagte: Ihr Httplistener sollten auf der Netzwerkkarte an die IP-Adresse gebunden werden, in dem die Anwendung ausgeführt wird. Wenn Sie nicht über eine Netzwerkkarte verfügen, die tatsächlich mit einer öffentlichen IP konfiguriert ist (z. B. wenn Sie keinen Router verwenden), ist Ihre private Adresse diejenige, die Sie verwenden.

Eine einfache Möglichkeit, dies zu überprüfen, ist IPCONFIG auszuführen und zu sehen, welche IP-Adresse aufgelistet ist.