IPv6로 액세스하면 "via IPv6"이 나오는 사람
(HTML 태그 붙일 뿐의 녀석이 발견되지 않았기 때문에)
표시해보기
IPv6에서 연결하면
가 표시됩니다.
IPv4에서 연결하면
가 표시됩니다.
사용법
<span id="kibousoft-viav6"></span>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://viav6.kibousoft.co.jp/', true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
var dom = document.getElementById('kibousoft-viav6');
dom.innerHTML = xhr.responseText;
}
};
xhr.send(null);
</script>
소스 코드
더럽지만 직접 쓴다. 큰 일을하지 않습니다.
index.php<a href="https://github.com/kibousoft/viav6_web/" style="text-decoration: none; color: white;">
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$headers = apache_request_headers();
if ($headers['X-Forwarded-For']) {
$ip = $headers['X-Forwarded-For'];
}
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $ip)) {
echo '<div style="background: linear-gradient(#FF0000, #FF99CC); padding: 5px; border: 1px solid #333333; border-radius: 3px; font-size: 13px; width: 50px; text-align: center; font-family: sans-serif;">via IPv4</div>';
} else {
echo '<div style="background: linear-gradient(#0000FF, #99CCFF); padding: 5px; border: 1px solid #333333; border-radius: 3px; font-size: 13px; width: 50px; text-align: center; font-family: sans-serif;">via IPv6</div>';
}
?>
</a>
CORS 이야기
외부에서 XHR로 검색할 수 있는 사이트에서는Access-Control-Allow-Origin
, Access-Control-Allow-Methods
헤더를 반환해야 합니다.
.htaccess에서 다음을 설정했습니다.
.htaccessHeader set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET"
인프라 이야기
처음에는 Amazon API Gateway에서 시도했지만 API Gateway는 IPv6을 지원하지 않았습니다.
그래서 OpsWorks에서 PHP App Server를 세워서 움직이고 있습니다.
OpsWorks에도 다음과 같은 문제가있었습니다.
<span id="kibousoft-viav6"></span>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://viav6.kibousoft.co.jp/', true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
var dom = document.getElementById('kibousoft-viav6');
dom.innerHTML = xhr.responseText;
}
};
xhr.send(null);
</script>
더럽지만 직접 쓴다. 큰 일을하지 않습니다.
index.php
<a href="https://github.com/kibousoft/viav6_web/" style="text-decoration: none; color: white;">
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$headers = apache_request_headers();
if ($headers['X-Forwarded-For']) {
$ip = $headers['X-Forwarded-For'];
}
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $ip)) {
echo '<div style="background: linear-gradient(#FF0000, #FF99CC); padding: 5px; border: 1px solid #333333; border-radius: 3px; font-size: 13px; width: 50px; text-align: center; font-family: sans-serif;">via IPv4</div>';
} else {
echo '<div style="background: linear-gradient(#0000FF, #99CCFF); padding: 5px; border: 1px solid #333333; border-radius: 3px; font-size: 13px; width: 50px; text-align: center; font-family: sans-serif;">via IPv6</div>';
}
?>
</a>
CORS 이야기
외부에서 XHR로 검색할 수 있는 사이트에서는Access-Control-Allow-Origin
, Access-Control-Allow-Methods
헤더를 반환해야 합니다.
.htaccess에서 다음을 설정했습니다.
.htaccessHeader set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET"
인프라 이야기
처음에는 Amazon API Gateway에서 시도했지만 API Gateway는 IPv6을 지원하지 않았습니다.
그래서 OpsWorks에서 PHP App Server를 세워서 움직이고 있습니다.
OpsWorks에도 다음과 같은 문제가있었습니다.
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET"
처음에는 Amazon API Gateway에서 시도했지만 API Gateway는 IPv6을 지원하지 않았습니다.
그래서 OpsWorks에서 PHP App Server를 세워서 움직이고 있습니다.
OpsWorks에도 다음과 같은 문제가있었습니다.
따라서 위의 설정은 수동으로 수행했습니다.
비고
Reference
이 문제에 관하여(IPv6로 액세스하면 "via IPv6"이 나오는 사람), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ANNotunzdY/items/17805a4d7a2d797822ea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)