【问题标题】:Include the IP Address of the Caller in $.Post() method在 $.Post() 方法中包含调用者的 IP 地址
【发布时间】:2014-08-09 08:07:16
【问题描述】:

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

在他的服务器端,如果我得到 HttpRequestMessage.Referrer.Host 名称,它显示为“localhost”。我只是想知道如何将我的 IP 信息包含在我的 Http 请求的引用者或 Origing 标头中,或者打开使用某些 IP 发送 Post 请求的客户端 Web 应用程序是唯一的方法吗? 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);
  });
}

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 没错,我在 ASP.NET Web API 中的 POST 方法签名为([FromBody] 详细信息值,HttpRequestMessage Msg)但是当我将 HttRequest 消息更改为 HttpRequest 时,我的客户端开始抛出内部服务器错误。不知道为什么会发生这种情况,但是您是否通过 HttpRequestMessage 类看到任何其他方式并获取客户端 IP 地址?
    • 感谢 Ton Kiran .....它奏效了..你拯救了我的一天..想知道为什么它如此迂回地获取请求者的 IP 地址。但没关系再次感谢
    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多