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

时间:2014-06-18 21:47:27

标签: c# jquery asp.net asp.net-web-api

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

在服务器端,如果我得到HttpRequestMessage.Referrer.Host名称,它显示为" localhost"。我只想知道如何在我的Http请求的引用者或Origing头中包含我的IP信息,或者打开我的CLient Web应用程序,它使用一些IP发送Post请求是唯一的? PFB我的Java脚本..

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

1 个答案:

答案 0 :(得分:0)

即使您能够以某种方式通过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