وفقًا للظروف الوطنية في الصين، تتأثر مشاركة النطاق العريض بشكل خطير بتلوث DNS واعتراض HTTP، مما يتسبب في عدم استقرار طلبات الشبكة. ومع ذلك، لا يتأثر بروتوكول IP/TCP بشكل عام. لذلك، يمكنك تحويل اسم المجال إلى IP أولاً وحفظه، واستخدام IP للوصول إليه في المستقبل. يبدأ العميل ويحول اسم المجال إلى IP. إذا فشل، فاختبر ما إذا كان عنوان IP السابق متاحًا وحدد صحة عنوان IP (كما هو موضح أدناه). إذا تم حل اسم المجال بنجاح، يتم إرسال المعلومات المشفرة إلى الخادم ويتم إرجاع المحتوى الذي تم فك تشفيره لاختبار صحة عنوان IP (للتأكد من عدم تلوثه بواسطة DNS). إذا أمكن، تجنب استخدام بروتوكول http واستخدم بروتوكولًا مخصصًا. بالنسبة لعملاء الهاتف المحمول، يمكنك أيضًا استخدام شبكة الهاتف المحمول لحل اسم المجال أولاً، ثم استخدام نقطة اتصال WiFi الخاصة بك. الطريقة المذكورة أعلاه فعالة فقط في حالة قطع الاتصال غير الكامل بالشبكة بعد اكتشاف النطاق العريض.
انسخ رمز الكود كما يلي:
استيراد java.net.InetAddress؛
import java.net.UnknownHostException;
الطبقة العامة ParseDomainName {
InetAddress myServer = null;
InetAddress myIPaddress = null;
String domainName = null;
اسم المجال العام (اسم المجال سلسلة) {
this.domainName = domainName;
}
InetAddress العامة getServerIP() {
يحاول {
myServer = InetAddress.getByName(domainName);
} قبض على (UnknownHostException e) {
}
العودة (myServer)؛
}
// احصل على عنوان IP الخاص بالمضيف المحلي
InetAddress العامة getMyIP() {
يحاول {
myIPaddress = InetAddress.getLocalHost();
} قبض على (UnknownHostException e) {
}
العودة (myIPaddress)؛
}
public static void main(String[] args) {
ParseDomainName pdn = new ParseDomainName("www.baidu.com");
System.out.println("عنوان IP المضيف الخاص بك هو:" + pdn.getMyIP().getHostAddress());
System.out.println("عنوان IP الخاص بالخادم هو:" + pdn.getServerIP().getHostAddress());
}
}