2014-06-18 1 views
1

게시 메소드 및 일부 데이터가있는 서버를 호출합니다. 서버에는 발신자의 IP 주소 또는 모든 종류의 ID가 있어야합니다. 내 컴퓨터에서 POST 요청을 보내기 위해 $. Post() 메서드 JQuery 사용하고 있습니다.

서버 끝에서 "localhost"로 표시되는 HttpRequestMessage.Referrer.Host 이름을 얻으면 나는 단지 나의 IP 정보를 참조 자나 Origing 헤더에서 iclude하는 방법을 알고 싶다. 나의 Http 요청을 열거 나, CLient Web Application을 열면, 어떤 IP를 사용하여 Post 요청을 보내는 것이 유일한 것인가? 이것에 대한 PFB 내 자바 스크립트 ..

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

답변

0

어떻게 든 자신의 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

+0

그게 전부 오른쪽, 나는 내 POST 메소드의 서명이 ASP.NET 웹 API ([FromBody] 세부 값, HttpRequestMessage Msg)로하지만 HttpRequest로 HttRequest 메시지를 변경하면 클라이언트가 내부 서버 오류를 던지기 시작했습니다. 왜 이런 일이 일어 났는지 모르지만 HttpRequestMessage 클래스를 통해 다른 방법을보고 클라이언트 IP 주소를 얻으시겠습니까? –

+1

이것을 확인하십시오 : http://stackoverflow.com/a/9571292/1184056 –

+0

감사합니다 톤 키란 ..... 그게 효과가 ... 당신은 내 날을 구했어. 왜 그렇게 요청자의 IP 주소를 얻을 수있는 궁금해. 하지만 다시 한번 감사드립니다. –