J'ai deux serveurs sur l'intranet, un serveur de base de données et un serveur web. Et laissez l'administrateur réseau mapper une adresse IP de réseau externe au serveur Web afin que le réseau externe et le réseau interne soient accessibles en même temps. Mais cela crée un problème : le serveur Web utilise l'adresse relative du réseau interne pour récupérer les données, de cette manière, lors d'un accès depuis le réseau externe, les données ne peuvent pas être obtenues et seule la trame peut être affichée. Si le serveur de base de données est également mappé, l'intranet ne sera pas accessible et je ne pourrai pas le déboguer. Si les deux serveurs sont combinés en un seul, la vitesse de fonctionnement en sera affectée, et maintenant le patron ne veut plus y investir d'argent, après tout, ce n'est qu'une démonstration. Cela peut également être résolu en déplaçant les deux machines vers la salle informatique du réseau du laboratoire et en les connectant directement au réseau externe. Cependant, la salle informatique du réseau est fermée et dispose d'une carte d'accès, je ne peux donc pas y entrer et apporter des modifications fréquemment.
J'y ai réfléchi attentivement et j'ai estimé que ce problème devait être résolu en portant un jugement. Il suffit de juger si l'adresse IP du réseau interne ou l'IP du réseau externe est accessible, et d'effectuer l'opération correspondante en fonction du jugement. J'ai trouvé que l'utilisation de JS est bonne, car l'IP obtenue par JS a un avantage : elle obtient l'adresse IP définie par la machine locale. Si l'ordinateur est connecté à Internet via un réseau local, il obtient l'adresse IP LAN de l'ordinateur, contrairement à Request. en ASP, qui obtient l'adresse IP de l'ordinateur connecté à Internet.
Code (copié de quelqu'un d'autre, mais vous pouvez vous y référer :) )
<html>
<tête>
<méta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS obtient l'adresse IP du client</title>
</tête>
<corps>
<script type="text/javascript" langage="javascript">
<!--
fonction GetLocalIPAddress()
{
var obj = nul ;
var rslt = "";
essayer
{
obj = new ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress ;
obj = nul ;
}
attraper(e)
{
//Une exception se produit
}
retourner rslt;
}
document.write("Votre IP est : " + GetLocalIPAddress());
//-->
</script>
</body>
</html>
On dit que des avertissements peuvent apparaître lors de l'utilisation, mais ce n'est qu'un test, cela ne devrait pas poser de problème, haha :)