2013-07-23 19 views
5

Tôi đã có này cho đến nay ...làm thế nào để sử dụng IP công cộng của tôi với HttpListener

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(); 
}

Nhưng khi tôi khởi tạo lớp nó nói "The specified Network format is not valid"

Bản dịch có thể không được hoàn hảo bởi vì hình ảnh của tôi ngôn ngữ studio là tiếng Tây Ban Nha. IP của tôi trông giống như 95. ^^. ^^^.^^ Và tôi nghĩ rằng đó có thể là vấn đề bởi vì nó hoạt động khi tôi sử dụng ip địa phương của tôi.

// Edited

Ngoại lệ chính xác là: "El FORMATO del nombre de đỏ especificado không es válido" Đó là "The specified network name is not valid". Nếu tôi thêm tiền tố "http:// + :80/" nó vẫn xảy ra, nhưng làm thế nào tôi có thể truy cập thông qua ip công cộng của tôi?

+0

Ngoại lệ chính xác là gì? –

+0

Điều gì xảy ra nếu bạn thêm tiền tố 'http: // +: 80 /'? – spender

+0

Tôi không hiểu vấn đề ở đây, bạn có muốn biết cách truy xuất ip công khai hoặc có sự cố khi sử dụng không? – Machinegon

Trả lời

6

Khi thiết lập điều này, bạn nên sử dụng IP nội bộ của mình, vì đó là IP thực mà bạn đang nghe. Để nhận lưu lượng truy cập từ IP bên ngoài của bạn, bạn cần chuyển tiếp lưu lượng truy cập từ bộ định tuyến đến máy tính đang nghe trên IP nội bộ của nó.

Một cách để thiết lập là sử dụng chuyển tiếp cổng, từ bộ định tuyến của bạn, bạn sẽ muốn chuyển hướng bất kỳ lưu lượng truy cập nào đến trên cổng 80 đến máy tính của bạn.

Thông tin thêm: http://en.wikipedia.org/wiki/Port_forwarding

+1

Thực ra nó có vẻ là vấn đề của router vì nó không chuyển tiếp cổng, nhờ thời gian và câu trả lời của bạn, liên kết của bạn khá thú vị và tôi sẽ đọc nó Jamie. –

1

Như Jamie nói, HttpListener của bạn nên được liên kết với địa chỉ IP trên card mạng mà ứng dụng đang chạy. Trừ khi bạn có NIC thực sự được định cấu hình với IP công cộng (ví dụ: không đi qua bộ định tuyến) thì địa chỉ riêng của bạn là địa chỉ để sử dụng.

Cách dễ dàng để kiểm tra điều này là chạy IPCONFIG và xem địa chỉ IP nào được liệt kê.

Các vấn đề liên quan