2011-12-28 6 views
2

양식을 통해 내 방문자의 IP 주소를 얻으려는 의도로 아래 양식 줄이 내 문의 양식에 있습니다. 대신 기본값을 반환합니다. 방문자의 IP를 반환하려면 어떻게해야합니까? 저의 잠재 고객은 저에게 연락하지만 스패머들과 연락하는 형식입니다.폼 메일러에서 IP 주소를 가져 오는 방법

<input type=hidden name="env_report" value="REMOTE_HOST,REMOTE_ADDR"> 
+0

어떤 서버 환경을 사용하고 있습니까? 이 양식을 클라이언트에 보내면 요청하는 IP를 결정할 수도 있습니다. – Tigraine

+0

요청에 따라 서버에서 IP를 가져와야합니다. 그리고 "고객"이 있다면 양식에 액세스하기 위해 로그인하십시오. "스패머"가 할 수 없다고 가정합니다. 또는 reCaptcha 또는 기타 등등을 사용하십시오. 올바르게 완료되면 아무 것도하지 않는 것이 좋습니다. –

+1

PHP $ _SERVER 변수 'REMOTE_ADDR'및 'REMOTE_HOST'을 (를) 참조하려는 것 같습니다. http://php.net/manual/en/reserved.variables.server.php – msanford

답변

1

정확히 무엇을 할 것으로 예상됩니까?

IP 주소를 원할 경우 양식에서 생성하는 HTTP 요청의 클라이언트 주소를 확인하십시오. 폼이 클라이언트에서 이메일을 동적으로 생성하는 경우 (즉, HTTP 요청에서 양식 데이터를 다시 보내지 않는 경우), 일부 값으로 채우려는 경우 HTML을 생성하는 코드에서 값을 설정해야합니다 (javascript IP 주소에 대해 모른다) eg PHP와 ....

<input type=hidden name="env_report" value="<?php print $_SERVER['REMOTE_ADDR']; ?>"> 

만 당신이 일부 탬퍼 감지 기능을 포함하지 않는 한 다른 사람이 이메일의 내용을 수정하는 .... 사소한

<input type=hidden name="anti_tamper" value="<?php 
    print md5('s3cr3t' . $_SERVER['REMOTE_ADDR']); 
?>"> 

... 영수증에 확인 .

+1

하지만 여전히 ... 그게 성취 할 목표가 무엇입니까? 양식이 전송 된 동일한 고객으로부터 요청이 왔습니까? 나는 OP가 스팸 발송자에게서 오는 것처럼 보이는 IP를 걸러 내기를 원한다고 생각하지만, 나는 틀릴 수도있다. 어쩌면 스팸 발송자가 양식 요청과 양식 제출 사이에 IP를 뒤집을 수도 있습니다. 그러면 실제로 처리됩니다. –

+0

완벽하게 작동하지만 어떻게 변조되었는지 어떻게 알 수 있습니까? –

+0

if (md5 ('s3cr3t'. $ ip_address_in_email)! = $ anti_tamper) {// ip 주소가 변조되었습니다.} – symcbean

0

HTML에서 직접 가져올 수 없습니다. PHP와 같은 서버 측 언어를 사용하는 가장 좋은 방법입니다. PHP에서는 $ _SERVER [ 'REMOTE_ADDR']을 사용하여 클라이언트 IP 주소를 얻을 수 있습니다. 다음은 잠시 전에 Getting real client IP address in PHP에 작성한 블로그 게시물입니다.

는 자바 스크립트를 사용하여 IP 주소를 얻기 위해 더 신뢰할 수있는 방법은 없습니다,하지만 당신은 그것에 대해 자세한 내용에 this question을 볼 수 있습니다.

그래서 당신은 양식이 서버에 제출 될 때 여기서 IPaddress을 확인하고 제출가 스패머 또는 일반 사용자가인지 거기를 식별 할 것이다.

관련 문제