01/10/2018, 14:09

Cách lấy local IP của client bằng javascript khi không có internet

Như tiêu đề, mình đang cần lấy IP của client để gửi về server trong trường hợp không có kết nối internet.
Tức là webserver và client chỉ kết nối mạng LAN với nhau.
Bạn nào biết xin chỉ giúp.

Dark.Hades viết 16:11 ngày 01/10/2018

Bác bắt buộc phải có code của server, vì javascript chạy trên trình thông dịch của trình duyệt, trình duyệt thì chạy ở client, khi nó truy cập trang web thì máy chủ mới nhận được PACKAGE và giải mã, nó mới đọc được header do client gửi.
Vậy nên nếu dùng JS thì không thể lấy được đâu.

Văn Dương viết 16:17 ngày 01/10/2018

Mình mô tả lại một chút.
Mình có 1 webserver ASP.NET MVC5 và các client truy cập đến web này trong một mạng LAN của một doanh nghiệp. Khi truy cập mình muốn gửi thông tin của client như tên PC,IP hoặc MAC để web trả về các yêu cầu khác nhau.

Nếu JS không được thì có phương pháp nào khác thì các bạn có thể chia sẻ được không.

Dark.Hades viết 16:25 ngày 01/10/2018

Đầu tiên bác có thể tạo một biến js lưu thông tin client:

<script>
var clientInfo = {
  ip: {C# .Net code get client ip},
  agent: {https://www.w3schools.com/jsref/prop_nav_useragent.asp},
  ...
};
...
Ajax sử dụng cái client info
</script>

///

Đọc lại câu hỏi update của bác thì việc bác cần làm chỉ cần qản lí code của mvc .net thôi.
Tức là xem reference các hàm get client info rồi tại file .design thực hiện if/else để render nội dung phù hợp

Văn Dương viết 16:15 ngày 01/10/2018

Vấn đề là tại client mình lấy thông số client bằng cách nào để gửi về webserver.

Theo như mình biết thì code xử lý phía client là javascript thì việc lấy thông tin phải do javascript làm rồi. Không liên quan gì mã C# ở phía server ?

Mình có google thì đa phần toàn dùng phương pháp kết nối với 1 web nào đó ví dụ “what my ip” để lấy thông tin rồi gửi về server. Nhưng trường hợp của mình hoàn toàn không có kết nối internet.

Khoa NTA viết 16:11 ngày 01/10/2018

Vấn đề là lấy local IP đúng không? Thế bạn đã thử dùng WebRTC chưa?

stackoverflow.com
l008com

Can You Get A Users Local LAN IP Address Via JavaScript?

javascript, ip-address
asked by l008com on 01:46PM - 25 Nov 13

Test: http://net.ipcalf.com/
Lưu ý là có thể tính năng này đã bị client chặn (như mình) không chừng.

Văn Dương viết 16:18 ngày 01/10/2018

Đây là giải pháp các bạn nhé. Nó được thực hiện trong C# code :

public ActionResult Index(){
    string clientname = System.Net.Dns.GetHostEnty(Request.UserHostAddress).HostName;
    return View();
}
Bài liên quan
0