DnsServer.java
上传用户:hensond
上传日期:2021-12-27
资源大小:817k
文件大小:1k
源码类别:

软件工程

开发平台:

Java

  1. package com.company.chain;
  2. import java.util.Random;
  3. /**
  4.  * @author cbf4Life cbf4life@126.com
  5.  * I'm glad to share my knowledge with you all.
  6.  */
  7. public abstract class DnsServer {
  8. //上级DNS是谁
  9. private DnsServer upperServer;
  10. //解析域名
  11. public final Recorder resolve(String domain){
  12. Recorder recorder=null;
  13. if(isLocal(domain)){//是本服能解析的域名
  14. recorder = echo(domain);
  15. }else{//本服不能解析
  16. //提交上级DNS进行解析
  17. recorder = upperServer.resolve(domain);
  18. }
  19. return recorder;
  20. }
  21. //指向上级DNS
  22. public void setUpperServer(DnsServer _upperServer){
  23. this.upperServer = _upperServer;
  24. }
  25. //每个DNS都有一个DNS的数据处理区(ZONE),检查域名是否在本zone中
  26. protected abstract boolean isLocal(String domain);
  27. //每个DNS服务器都必须实现解析任务
  28. protected Recorder echo(String domain){
  29. Recorder recorder = new Recorder();
  30. //获得IP地址
  31. recorder.setIp(genIpAddress());
  32. recorder.setDomain(domain);
  33. return recorder;
  34. }
  35. //随机产生一个IP地址,工具类
  36. protected String genIpAddress(){
  37. Random rand = new Random();
  38. String address = rand.nextInt(255) + "." + rand.nextInt(255) + "."+ rand.nextInt(255) + "."+ rand.nextInt(255);
  39. return address;
  40. }
  41. }