인트라넷에 데이터베이스 서버와 웹 서버라는 두 개의 서버가 있습니다. 그리고 네트워크 관리자는 외부 네트워크 IP를 웹 서버에 매핑하여 외부 네트워크와 내부 네트워크에 동시에 접속할 수 있도록 합니다. 하지만 이로 인해 웹 서버가 내부 네트워크의 상대 주소를 사용하여 데이터를 검색하는 방식으로 외부 네트워크에서 접속할 경우 데이터를 얻을 수 없고 프레임만 표시됩니다. 데이터베이스 서버도 매핑된 경우 인트라넷에 액세스할 수 없으며 디버깅할 수도 없습니다. 두 대의 서버를 하나로 통합하면 실행 속도에 영향을 미치게 되고 이제 사장은 더 이상 돈을 투자할 생각이 없고 결국 시연일 뿐입니다. 두 대의 기기를 연구실 네트워크 전산실로 옮겨서 외부 네트워크에 직접 연결하면 해결될 수도 있는데, 네트워크 전산실이 폐쇄되어 있고 출입카드가 있어서 자주 들어가서 변경할 수는 없습니다.
곰곰히 생각해보니 접속한 것이 내부망 IP인지, 외부망 IP인지 판단하고, 그 정보를 바탕으로 해당 작업을 수행하면 된다. JS를 사용하는 것이 좋다는 것을 알았습니다. JS를 통해 얻은 IP는 로컬 컴퓨터에서 설정한 IP를 얻는다는 장점이 있습니다. 컴퓨터가 LAN을 통해 인터넷에 연결되어 있으면 Request와 달리 컴퓨터의 LAN IP를 얻습니다. 인터넷에 연결된 컴퓨터의 IP를 얻는 ASP에서.
코드 (다른 사람이 복사했지만 참고하시면 됩니다 :))
<html>
<머리>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS가 클라이언트 IP를 얻습니다</title>
</head>
<본문>
<script type="text/javascript" 언어="javascript">
<!--
함수 GetLocalIPAddress()
{
var obj = null;
var rslt = "";
노력하다
{
obj = new ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress;
객체 = null;
}
잡기(e)
{
//예외 발생
}
rslt를 반환;
}
document.write("당신의 IP는: " + GetLocalIPAddress());
//-->
</script>
</body>
</html>
사용 중 경고창이 나올 수 있다고 하는데 이는 테스트일 뿐이니 문제가 되지는 않습니다. 하하 :)