ฉันมีเซิร์ฟเวอร์สองตัวบนอินทราเน็ต เซิร์ฟเวอร์ฐานข้อมูล และเว็บเซิร์ฟเวอร์ และให้ผู้ดูแลระบบเครือข่ายแมป IP เครือข่ายภายนอกกับเว็บเซิร์ฟเวอร์ เพื่อให้สามารถเข้าถึงเครือข่ายภายนอกและเครือข่ายภายในได้ในเวลาเดียวกัน แต่สิ่งนี้ทำให้เกิดปัญหา เว็บเซิร์ฟเวอร์ใช้ที่อยู่สัมพัทธ์ของเครือข่ายภายในเพื่อดึงข้อมูล ด้วยวิธีนี้ เมื่อเข้าถึงจากเครือข่ายภายนอก จะไม่สามารถรับข้อมูลได้ และจะแสดงเฉพาะเฟรมเท่านั้น หากเซิร์ฟเวอร์ฐานข้อมูลถูกแมปด้วย อินทราเน็ตจะไม่สามารถเข้าถึงได้ และฉันจะไม่สามารถตรวจแก้จุดบกพร่องได้ หากเซิร์ฟเวอร์ทั้งสองรวมกันเป็นหนึ่งเดียว ความเร็วในการทำงานจะได้รับผลกระทบ และตอนนี้เจ้านายไม่ต้องการลงทุนเงินในเซิร์ฟเวอร์อีกต่อไป ท้ายที่สุดแล้ว มันเป็นเพียงการสาธิตเท่านั้น นอกจากนี้ยังสามารถแก้ไขได้โดยการย้ายเครื่องทั้งสองเครื่องไปที่ห้องคอมพิวเตอร์เครือข่ายของห้องปฏิบัติการและเชื่อมต่อโดยตรงกับเครือข่ายภายนอก อย่างไรก็ตาม ห้องคอมพิวเตอร์เครือข่ายปิดและมีการ์ดเข้าใช้งาน ดังนั้นฉันจึงไม่สามารถเข้าไปแก้ไขบ่อยครั้งได้
ฉันคิดอย่างรอบคอบและรู้สึกว่าปัญหานี้ควรได้รับการแก้ไขด้วยการตัดสิน เพียงตัดสินว่าการเข้าถึงเป็น IP เครือข่ายภายในหรือ IP เครือข่ายภายนอก และดำเนินการที่เกี่ยวข้องตามการตัดสินใจ หลังจากตรวจสอบข้อมูลแล้ว พบว่าการใช้ JS นั้นดี เนื่องจาก IP ที่ได้รับจาก JS มีข้อดีประการหนึ่งคือได้รับ IP ที่กำหนดโดยเครื่องท้องถิ่น หากคอมพิวเตอร์เชื่อมต่ออินเทอร์เน็ตผ่าน LAN ก็จะได้รับ LAN IP ของคอมพิวเตอร์ ซึ่งแตกต่างจากคำขอ ใน ASP ซึ่งรับ IP ของคอมพิวเตอร์ที่เชื่อมต่อกับอินเทอร์เน็ต
Code (ลอกมาจากคนอื่นแต่อ้างอิงได้ครับ :) )
<html>
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS ได้รับ IP ไคลเอนต์</title>
</หัว>
<ร่างกาย>
<script type="text/javascript" language="javascript">
-
ฟังก์ชั่น GetLocalIPAddress()
-
var obj = โมฆะ;
var rslt = "";
พยายาม
-
obj = ใหม่ ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress;
obj = โมฆะ;
-
จับ(จ)
-
//มีข้อยกเว้นเกิดขึ้น
-
กลับ rslt;
}
document.write("IP ของคุณคือ: " + GetLocalIPAddress());
-
</สคริปต์>
</body>
</html>
ว่ากันว่าอาจมีคำเตือนระหว่างใช้งาน แต่นี่เป็นเพียงการทดสอบไม่น่าจะมีปัญหานะ 555 :)