الطريقة العادية لتحليل اسم المجال:
import java.net.*; public class Kkkk { public static void main(String args[]) throws Exception { عنوان InetAddress = InetAddress.getByName("wxh-PC");// wxh-PC هو اسم جهاز الكمبيوتر الخاص بي System.out .println(address); System.out.println("-----"); System.out.println(address1); InetAddress[] العناوين = InetAddress .getAllByName("www.baidu.com"); System.out.println(addresses. length); println(addr);تنفيذ تحليل اسم المجال باستخدام IP المضيف الديناميكي
والغرض من ذلك هو استخدام INTERNET DNS HOST لتوجيه اسم المجال إلى المضيف في المنزل (شخصي).
في الوقت الحاضر، يعد CABLEMODEM سريعًا للغاية ويمتلك عنوان IP ديناميكي، لذا من الممكن حل أسماء النطاقات على الأجهزة الشخصية.
يمكن القيام بذلك بإعدادات بسيطة جدًا.
على سبيل المثال، إذا كان لديك اسم مجال yourdomain.com، فيمكنك تحويل اسم المجال هذا إلى أي مضيف.
1. يبدأ الخادم (IP: AAAA) عملية صغيرة للتحليل الديناميكي لنظام DNS.
ملف اسم المجال الخاص بـ VeVB.COm هو /var/named/VeVB.COm
قم بإنشاء /var/named/VeVB.COm.static آخر (يمكن استخدام ملف القالب لإنشاء VeVB.COm)
(JDK1.3، لينكس)
# الكود الأصلي هو كما يلي: ThreadDNSReloadServer.java import java.io.*; import java.net.*; public class ThreadDNSReloadServer { public static void main(String[] args) { int i=1; حاول { ServerSocket s= new ServerSocket( 8189); for (;;) { المقبس الوارد =s.accept(); " + i); new ThreadDNSReloadHandle(incoming,i).start(); i++; } } Catch (Exception e) { System.out.println(e); } } } class ThreadDNSReloadHandle Extends Thread { public ThreadDNSReloadHandle(Socket i, int c) { incoming= i; counter=c } public void run() { حاول { BufferedReader in=new BufferedReader(new InputStreamReader(incoming.getInputStream())); String DNSFILEPATH="/var/named/"; String DNSFILE="VeVB.COm"; USER_VALIDATED=true؛ // التحقق من صحة المستخدم؛ if ( str ==null ) Done=true else { str=str.trim(); () >2) User=str.substring(2); } if ( str.substring(0,2).equals("LB") ) { if (str. length() >2) DNSFILE=str.substring( 2); } إذا ( str.substring(0,2).equals("LC") ) { if (str. length() >2) HOSTIP=str.substring(2) } if ( str.trim().equals("BYE ")) انتهى = صحيح؛ } } incoming. Close(); // أضف التحقق من المستخدم. // اكتب ملف VeVB.COM.static في الخادم إلى VeVB.COM String DNSTMP =DNSFILEPATH + DNSFILE +".static"; BufferedReader sin=new BufferedReader(new FileReader(DNSTMP)); PrintWriter sout=new PrintWriter(new FileWriter(DNSFILEPATH + DNSFILE) , String s while ((s=sin.readLine()); ) != null) { if (s.startsWith("host")) { s=host IN A " + HOSTIP; sout.println(s); s="@ IN A" + HOSTIP; } sout.println(s); "DNSFILE:" + DNSFILE ); //System.out.println("HOSTIP:" + HOSTIP ); java.lang.Runtime.getRuntime().exec(command); } Catch (Exception e) { System.out.println(e);
2. العميل (ويندوز/لينكس)
# أضف العميل إلى بدء التشغيل (أو العملية) في كل مرة تبدأ فيها: SockTest.java import java.io.*; import java.net.*; public classocketTest { public static void main(String[] args) {try { المقبس s=new المقبس("AAAA",8189); BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter out=new PrintWriter(s.getOutputStream(),true); InetAddress localHostAddress =InetAddress.getLocalHost();//get LocalHost Ip out.println("LAguest"); println("LByourdomain.com"); out.println("LC" + localHostAddress.getHostAddress()); out.Close(); } Catch (IOException e) { System.out.println(e); نموذج ملف نظام أسماء النطاقات: (VeVB.COM.static)
@ ns.dnsserver.com xxxxx xxxx host IN A 127.0.0.1 // هذا هو المكان الذي يمكنك فيه تغيير مضيف www IN CNAME ...