티스토리처럼 아이피 주소를 사용자가 직접 수집할 수 없는 경우 사용할 수 있는 유일한 방법일 것 같습니다. 접속자의 IP 주소는 ipify API를 통해 받아 옵니다.
특정 아이피 접속 차단
<script>
(function () {
function resp() {
var arrUserIP = ['아이피']; // 차단할 아이피 입력
var json = JSON.parse(this.responseText);
for (var i = 0; i < arrUserIP.length; i++) {
if (arrUserIP[i] == json.ip) {
// 차단할 아이피 접속 시 보여줄 메시지(특정 주소로만 보내려면 아래 줄 삭제)
alert("당신은 접속이 차단되었습니다.")
// 다른 곳으로 보낼 URL주소 입력
window.location.replace("http://error.com");
}
}
}
var request = new XMLHttpRequest();
request.addEventListener("load", resp);
request.open("GET", 'https://api.ipify.org?format=json');
request.send();
}());
</script>
ipify에 각 언어별 아이피 주소를 체크하는 소스가 있으니 참고하시길 바랍니다.
아이피 주소 받기
아래는 자바스크립트로 아이피 주소만 받아 오기 예제 코드입니다.
Javascript
<script type="application/javascript">
function getIP(json) {
document.write("My public IP address is: ", json.ip);
}
</script>
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>
jQuery
<script type="application/javascript">
$(function() {
$.getJSON("https://api.ipify.org?format=jsonp&callback=?",
function(json) {
document.write("My public IP address is: ", json.ip);
}
);
});
</script>
Python
역시 파이썬은 뭐든 간단하고 간결하네요!
from requests import get
ip = get('https://api.ipify.org').text
print('My public IP address is: {}'.format(ip))
반응형