在$. post()方法中包含调用者的IP地址

本文关键字:调用者 包含 IP 地址 方法 post | 更新日期: 2023-09-27 18:09:08

我正在调用具有Post方法和一些数据的服务器。服务器需要有呼叫者的IP地址或任何类型的身份。我使用JQuery的$. POST()方法从我的机器发送我的POST请求。

在服务器端,如果我得到HttpRequestMessage.Referrer.Host名,它显示为"localhost"。我只是想知道如何将我的IP信息包含在我的Http请求的引用者或起始标头中,或打开我的客户端Web应用程序,该应用程序使用某些IP发送Post请求是唯一的选择?

    function submitValues() {
    var accno = $("#accno").val();
    var amt = $("#amount").val();
    var modifiedacctno = Math.floor((Math.random() * 100000) + 1);
    var modifiedAmt = Math.floor((Math.random() * 10000) + 1);
    var posting=$.post("http://192.168.2.3:50063/api/Transaction", { ToAccountNumber: modifiedacctno, amount: modifiedAmt }, null, "html")
  posting.done(function (data) {
      console.log("Data Loaded: " + data);
      $("#result").empty().append(data);
  });
}

在$. post()方法中包含调用者的IP地址

即使您能够通过javascript以某种方式获得调用者的IP地址,通常情况下客户端也不知道自己的IP地址。这是因为大多数人都在NAT后面,所以他们的计算机认为他们在IP地址192.168.25.53上,但他们的公共地址很可能与此不同。

获取客户端IP地址的方法是在服务器上。正确的方法是使用Request对象,更具体地说是UserHostAddress属性。

var remoteUserIp = Request.UserHostAddress;
// do your processing with remoteUserIp here

在进一步审查后,这似乎不是一个很好的方式来做这个WebAPI,请参阅@Kiran链接的答案- https://stackoverflow.com/a/9571292/1184056