Sử dụng C# làm cách nào để xác định xem URL có phải là URL mạng nội bộ không? Tôi muốn một số mã để làm một cái gì đó nếu một URL là một mạng nội bộ một vs công cộng.Làm cách nào để biết URL có phải là địa chỉ mạng nội bộ không?
Trả lời
bạn không thể biết rõ. nếu url mạng nội bộ của bạn trông giống như tên miền hoàn toàn đủ điều kiện thì rất khó để nói. cách duy nhất để nói là truy vấn hai máy chủ DNS khác nhau (của riêng bạn và máy chủ công cộng). Nếu cả hai trả về cùng một kết quả, thì đó là một tên miền internet. nếu máy chủ DNS công cộng không thể giải quyết địa chỉ thì rất có thể đó là miền mạng nội bộ.
Tôi đã thấy các thiết lập điên rồ nơi trang mạng nội bộ được đặt tên như "intranet.com", được giải quyết nội bộ vào mạng nội bộ, nhưng là miền thực sự thuộc sở hữu của một công ty tùy ý ở bên ngoài. Bạn sẽ không chỉ phải kiểm tra xem nó có giải quyết được từ cả hai máy chủ DNS hay không, nhưng nó cũng giải quyết được điều tương tự. – rmeador
Giải pháp này (giải quyết tên cho IP) sẽ hoạt động nếu bạn có kiến thức tiên quyết về IP nội bộ so với IP bên ngoài. Nếu bạn thêm một chút cấu hình (danh sách các dải IP hợp lệ cho mạng nội bộ), bạn đã giải quyết được sự cố. Không phải là một giải pháp khá, nhưng nó sẽ hoạt động. –
Một vấn đề khác là nếu máy chủ phân giải thành một IP có thể định tuyến vì tổ chức của bạn có IP lớp A hợp lệ mà nó sử dụng làm IP của mạng nội bộ. Nó làm cho cuộc sống rất khó khăn với. Net và muốn. – user7116
Bạn có biết mạng con bên trong (về địa chỉ IP) không? Nếu vậy, tôi chỉ cần giải quyết tên máy chủ và xem nó có phải là nội bộ theo cách đó hay không.
Nói chung, không có cách nào đáng tin cậy để cho biết URL mạng nội bộ từ URL Internet. Nếu mạng nội bộ có sẵn cho chương trình của bạn, thì nó sẽ giống như Internet, và nếu không, thì bạn vẫn sẽ không biết liệu URL có được coi là URL mạng nội bộ đang hoạt động hay chỉ là URL Internet tạm thời .
Bạn sẽ cần một số kiến thức đặc biệt, chẳng hạn như tên miền hoặc IP của máy chủ đang cung cấp mạng nội bộ, để phân biệt chúng.
Nếu bạn muốn xác định xem có URL nào là url mạng nội bộ trong bất kỳ công ty nào (trái ngược với chuyên mã của bạn cho một công ty cụ thể), tôi chúc bạn may mắn.
Thông thường, nhưng không phải lúc nào, các url trong mạng nội bộ không có TLD (Tên miền cấp cao nhất, chẳng hạn như .com
). Tuy nhiên, tôi đã nhìn thấy một số mà làm.
Hầu như luôn luôn (AFAIK), tên miền mạng nội bộ sẽ giải quyết thành địa chỉ IP tương tự như địa chỉ hiện tại của máy tính. Lưu ý rằng tôi đã không nói cùng một mạng con; mạng nội bộ lớn có thể có nhiều mạng con. Cũng lưu ý rằng nếu máy tính không nằm trong mạng intranet của công ty, thì sẽ là tên miền regualr giải quyết cho các địa chỉ IP tương tự. (Trừ khi máy tính ở phía sau NAT)
Tôi luôn sử dụng .local (http://en.wikipedia.org/wiki/.local) cho các không gian tên nội bộ. tức là supermegacorp.com sẽ là supermegacorp.local nội bộ. Nếu tất cả mọi người đã làm điều này, giải pháp cho vấn đề này sẽ là tầm thường. Tất nhiên .local có thể không làm việc cho tất cả mọi người, tuy nhiên tôi chưa tìm thấy một nơi nào đó mà nó sẽ không hoạt động. – Bryan
Tôi chưa bao giờ thấy '.local' được sử dụng trước đây. Tôi đã nhìn thấy một môi trường nơi mạng nội bộ được lưu trữ trên các tên miền phụ của tên miền bên ngoài của công ty. – SLaks
nếu url phân giải thành địa chỉ tcpIp là một trong các địa chỉ IP được đặt sang một IPAddress riêng, thì chắc chắn là trên Intranet của bạn. đây là những
- 10.xxx.xxx.xxx,
- 172.16.xxx.xxx qua 172.31.xxx.xxx, và
- 192.168.xxx.xxx
nếu nó giải quyết để bất kỳ địa chỉ IP nào khác, có thể vẫn ở trên mạng nội bộ của bạn, nhưng nó có địa chỉ IP công khai để có thể truy cập từ bên ngoài Intranet
+1, Như tôi đã nêu chi tiết trong một nhận xét cho một phản hồi khác, một số tổ chức, như bạn chỉ ra, hãy sử dụng IP có thể định tuyến làm IP của mạng nội bộ. Mức độ bảo mật của Net rất đáng kể dựa trên những điều này khi sử dụng các chia sẻ mạng. Nếu bạn đủ may mắn để có những IP đó, thì tôi thấy đó là một cách hợp lệ để kiểm tra. – user7116
Giải pháp này cũng sẽ phá vỡ IP6. Mặc dù IP6 đã bảo lưu địa chỉ IP riêng, khuyến nghị chung là không sử dụng chúng để tránh dịch địa chỉ. – Reza
Để thêm vào những gì người khác đã nói, Intranet không có bất kỳ tên miền cấp cao nào trong địa chỉ của nó. Tôi đã làm việc trong một vài công ty và tất cả Intranet là một cái gì đó như:
http://developments/admin - bạn sẽ nhận thấy rằng không có miền cấp cao nhất. Vì vậy, nó giải quyết với một máy tính trong mạng. Một lần nữa, như tên cho thấy, bạn không có khả năng truy cập nó vượt ra ngoài môi trường của công ty.
Như đã đề cập trong thư trả lời bài đăng của Joel. Điều này không phải lúc nào cũng đúng. – Bryan
Tôi không phải là lập trình viên C#, vì vậy tôi không thể cung cấp mã cho bạn, nhưng phương pháp cơ bản sẽ liên quan đến việc so sánh phần tên máy chủ của URL với máy chủ trong mạng nội bộ của bạn.Hoặc, nếu URL của bạn chỉ sử dụng IP không phải là tên DNS, hãy so sánh IP với địa chỉ IP của (các) máy chủ mạng nội bộ của bạn.
Nứt URL bằng thao tác chuỗi - mặc dù tôi tưởng tượng C# phải có một lớp URL sẽ làm điều này cho bạn - và trích xuất tên máy chủ, so sánh nó với danh sách máy chủ.
Đơn giản và không hoàn hảo nhưng hoạt động đối với trường hợp 80% chỉ đơn giản là kiểm tra xem URL có một khoảng thời gian trong đó hay không. Tôi biết các URL Intranet có thể đủ điều kiện, nhưng theo kinh nghiệm của tôi (tại Microsoft) thì hầu hết là không, và điều này hoạt động khá tốt.
Bạn có thể thẩm vấn trình khám phá internet để xem miền có khớp với danh sách tên miền mạng nội bộ được chấp nhận hay không.
Registry quan trọng là HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ZoneMap \ Domains
Có nếu tên miền có giá trị trong vòng 1 cho giao thức đó sẽ được coi là một miền mạng nội bộ. Bạn sẽ cần thực hiện một nslookup để thu thập địa chỉ 'thực'.
* thẩm vấn internet explorer * Không, IE sẽ không phản bội Microsoft ngay cả khi bạn tra tấn nó. ;) –
- 1. Trang web "IP của tôi là gì" biết địa chỉ LAN nội bộ của tôi?
- 2. Làm cách nào để bạn biết liệu URL nội dung có thực sự trỏ đến nội dung hiện tại không?
- 3. Phân biệt giữa mạng nội bộ và địa chỉ IP chính thức
- 4. Tìm địa chỉ mạng
- 5. Có ai biết một thành phần java để kiểm tra xem địa chỉ IP là từ mạng cụ thể/netmask?
- 6. cách để biết chuỗi có phải là base64 hay không
- 7. Thêm dấu trang chỉ là javascript, không phải là URL
- 8. Làm cách nào để biết một lớp là lớp nội bộ hay lớp người dùng?
- 9. Đây có phải là địa chỉ email hợp lệ không?
- 10. Tại sao bộ nhớ byte địa chỉ và không phải bộ nhớ địa chỉ 4 byte?
- 11. flash: ExternalInterface làm việc với thẻ địa chỉ mạng nhưng không phải với thẻ đối tượng
- 12. Làm cách nào để biết khung hiện tại có phải là cha mẹ không?
- 13. làm cách nào để biết liệu cột có phải là khóa chính sử dụng mysqli không?
- 14. Làm cách nào để biết bảng có phải là mảng không?
- 15. Làm cách nào để biết liệu IQueryable có phải là IOrderedQueryable không?
- 16. Làm cách nào để biết một đối tượng có phải là mô hình Mockito không?
- 17. Làm cách nào để biết loại đối tượng có phải là Nullable <T> không?
- 18. Làm cách nào để khắc phục lỗi "Chỉ sử dụng một địa chỉ của từng địa chỉ cổng (giao thức/địa chỉ/cổng mạng)"?
- 19. Có thể có chứng chỉ SSL cho địa chỉ IP, không phải tên miền?
- 20. Làm thế nào để dịch địa chỉ bộ nhớ ảo sang địa chỉ thực?
- 21. Chuyển đổi địa chỉ CIDR thành mặt nạ mạng con và địa chỉ mạng
- 22. Làm cách nào để nhận chỉ mục bộ điều hợp mạng?
- 23. Làm cách nào để kiểm tra xem địa chỉ IP có phải là máy chủ lưu trữ cục bộ trên hệ thống đa hệ thống không?
- 24. Làm cách nào để lấy URL từ thanh địa chỉ của trình duyệt?
- 25. Làm thế nào để có được một danh sách tất cả các địa chỉ IP hợp lệ trong một mạng nội bộ?
- 26. .địa phương hóa nội mạng cho không dây
- 27. Router vs Switch (Dịch Địa chỉ Mạng)
- 28. Cho biết chuỗi văn bản có phải là địa chỉ IPv6 hoặc địa chỉ IPv4 bằng cách sử dụng ổ cắm chuẩn API API
- 29. Làm cách nào để nhận địa chỉ IP mạng cục bộ của máy tính theo chương trình? (C#)
- 30. Android Webview: Có cách nào để biết URL trước đó là gì không?
là điều này quan trọng, SLaks? Tôi nghĩ rằng đây là một câu hỏi hợp lý ... – Atmocreations
Nó sẽ giúp chúng tôi đưa ra một câu trả lời tốt hơn, đặc biệt là nếu chúng tôi biết loại mạng nội bộ anh ta đang tìm kiếm. – SLaks