Làm cách nào để OS X gửi địa chỉ IP ĐỊA PHƯƠNG trong tiêu đề yêu cầu www?


0

Tôi cần có thể gửi địa chỉ IP cục bộ của máy tính cùng với các tiêu đề khi thực hiện yêu cầu đến một trang web. Tương tự như cách bạn có thể nhận được _SERVER["REMOTE_ADDR"]bằng php, nhưng ip cục bộ (ví dụ 192.168.100.1) Đây sẽ là một mạng nội bộ để môi trường có thể được kiểm soát. Bất cứ điều gì có thể được cài đặt trên máy tính, vv

Điều này sẽ có trên máy tính Mac OS X. Hy vọng cho cả Safari và Firefox. Nhưng sẽ được mở để sử dụng một.

Có ai biết nếu điều này là có thể? Cám ơn rất nhiều.

Câu trả lời:


0

Tôi đoán rằng bằng cách nào đó gọi thêm tiêu đề X-Forwarded-For , giống như một số máy chủ proxy sẽ làm. Nhưng, mặc dù không phải là một tiêu chuẩn chính thức, tôi tự hỏi liệu nó có "cho phép" các địa chỉ IP từ một phạm vi riêng tư hay không.

Nếu bạn có thể làm cho trình duyệt của mình sử dụng proxy GlimmerBlocker , thì bạn có thể thêm các tiêu đề đó thông qua quy tắc Sửa đổi yêu cầu :

  • Thêm một Quy tắc mới (tùy chọn, trước tiên, thêm Bộ lọc mới để lưu trữ Quy tắc)
  • Trên ngăn loại quy tắc , đặt Hành động để Sửa đổi Yêu cầu
  • Trên khung yêu cầu thêm:

    gb.request.headers ['X-Forwarded-For'] = '192.168.100.1';
  • Hoặc, để sử dụng địa chỉ IP cục bộ thực tế, tôi giả sử :

    var myIp;
    cho (var k trong gb.network.interfaces) {
      var x = gb.network.interfaces [k];
      if (! x.IPv4) {
        tiếp tục;
      }
      cho (var i trong x.IPv4.addr) {
        var ip = x.IPv4.addr [i];
        // Một giao diện có thể có nhiều địa chỉ IP, nhưng giả sử
        // nó chỉ có một địa chỉ không phải là localhost:
        if (ip == "127.0.0.1") {
          tiếp tục;
        }
        myIp = ip;
        phá vỡ;
      }
    }
    gb.request.headers ['X-Forwarded-For'] = myIp;
    
  • Tùy chọn, chỉ áp dụng quy tắc cho các máy chủ nhất định.

(Tôi cũng khá tò mò về lý do của câu hỏi này ...)


À đúng rồi. Làm điều này ở cấp độ phần cứng hoàn toàn có ý nghĩa. Tôi sẽ điều tra proxy hiện tại và xem những gì chúng ta có thể làm. Cảm ơn. Về lý do tại sao .... đây là cho một trang web mạng nội bộ. Dựa trên địa chỉ cố định IP cục bộ (được gán dựa trên địa chỉ mac), chúng ta có thể biết được vị trí của máy tính. Giá rẻ và dễ dàng.
Louis W

@Louis: vậy, một mạng nội bộ có nhiều bộ định tuyến? Hoặc một máy chủ web trong một phân khúc khác nhau? Trong một mạng nội bộ đơn giản, trình duyệt sẽ kết nối với máy chủ bằng địa chỉ IP cục bộ của nó, phải không? Điều đó sau đó chỉ đơn giản là kết thúc _SERVER["REMOTE_ADDR"]- nhưng tôi đoán bạn đã thử nghiệm và tìm thấy một số địa chỉ khác. (Tôi đã thay đổi JavaScript; phiên bản chưa được kiểm tra đầu tiên của tôi đã gửi 127.0.0.1 ...)
Arjan

Không chắc chắn về việc thiết lập số lượng bộ định tuyến. Tôi không ở trên trang web vào lúc này. Tôi đã kiểm tra điều này cục bộ (chúng tôi có 1 bộ định tuyến gán ips dựa trên macaddr) và REMOTE_ADDR đã đưa ra dưới dạng IP đối mặt công khai của chúng tôi (giống nhau cho tất cả các máy tính).
Louis W

1
@Louis, nếu bạn đang sử dụng proxy ngay bây giờ thì có lẽ tất cả những gì bạn cần là thiết lập các máy trạm để không sử dụng proxy hiện tại cho các địa chỉ cục bộ? Nếu máy chủ web và máy trạm được cắm vào cùng một bộ định tuyến, thì khi không sử dụng bất kỳ proxy nào, tôi mong muốn các máy trạm tiết lộ địa chỉ IP cục bộ của chúng cho máy chủ đó. (Nhưng tôi không phải là chuyên gia mạng; nếu bạn biết thiết lập chính xác thì có thể yêu cầu tại serverfault.com cung cấp cho bạn một giải pháp dễ dàng hơn.)
Arjan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.