IDC.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Collections.Generic;
  2. namespace TEAMModelOS.SDK.DI.IPIP
  3. {
  4. public class IDC
  5. {
  6. /**
  7. * @var Reader
  8. */
  9. private readonly Reader reader;
  10. public IDC(string name) {
  11. reader = new Reader(name);
  12. }
  13. public string[] find(string addr, string language) {
  14. return reader.find(addr, language);
  15. }
  16. public Dictionary<string, string> findMap(string addr, string language) {
  17. var data = reader.find(addr, language);
  18. if (data == null) {
  19. return null;
  20. }
  21. var m = new Dictionary<string, string>();
  22. var fields = reader.getSupportFields();
  23. for (int i = 0, l = data.Length; i<l; i++) {
  24. m.Add(fields[i], data[i]);
  25. }
  26. return m;
  27. }
  28. public IDCInfo findInfo(string addr, string language) {
  29. var data = reader.find(addr, language);
  30. if (data == null) {
  31. return null;
  32. }
  33. return new IDCInfo(data);
  34. }
  35. public bool isIPv4()
  36. {
  37. return (reader.getMeta().IPVersion & 0x01) == 0x01;
  38. }
  39. public bool isIPv6()
  40. {
  41. return (reader.getMeta().IPVersion & 0x02) == 0x02;
  42. }
  43. public string[] fields()
  44. {
  45. return reader.getSupportFields();
  46. }
  47. public int buildTime()
  48. {
  49. return reader.getBuildUTCTime();
  50. }
  51. }
  52. }