comparison src/luan/modules/IoLuan.java @ 1444:b765f146f4dc

add dns_lookup
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 05 Feb 2020 08:16:15 -0700
parents 836e00bf7ce2
children 580ee513a4b7
comparison
equal deleted inserted replaced
1443:42c07ecb0ddc 1444:b765f146f4dc
26 import java.net.MalformedURLException; 26 import java.net.MalformedURLException;
27 import java.net.UnknownHostException; 27 import java.net.UnknownHostException;
28 import java.nio.file.Files; 28 import java.nio.file.Files;
29 import java.util.Enumeration; 29 import java.util.Enumeration;
30 import java.util.Map; 30 import java.util.Map;
31 import javax.naming.NamingException;
32 import javax.naming.NameNotFoundException;
33 import javax.naming.directory.Attribute;
34 import javax.naming.directory.InitialDirContext;
31 import luan.Luan; 35 import luan.Luan;
32 import luan.LuanTable; 36 import luan.LuanTable;
33 import luan.LuanFunction; 37 import luan.LuanFunction;
34 import luan.LuanException; 38 import luan.LuanException;
35 import luan.modules.url.LuanUrl; 39 import luan.modules.url.LuanUrl;
671 } 675 }
672 } 676 }
673 return tbl; 677 return tbl;
674 } 678 }
675 679
680 public static LuanTable dns_lookup(Luan luan,String domain,String type)
681 throws NamingException
682 {
683 LuanTable tbl = new LuanTable(luan);
684 InitialDirContext idc = new InitialDirContext();
685 Attribute attribute;
686 try {
687 attribute = idc.getAttributes("dns:/" + domain, new String[] {type}).get(type);
688 } catch(NameNotFoundException e) {
689 return tbl;
690 }
691 if( attribute==null )
692 return tbl;
693 final int n = attribute.size();
694 for( int i=0; i<n; i++ ) {
695 Object obj = attribute.get(i);
696 tbl.rawInsert(i+1,obj);
697 }
698 return tbl;
699 }
700
676 701
677 private static void check(Luan luan,String name) throws LuanException { 702 private static void check(Luan luan,String name) throws LuanException {
678 Luan.checkSecurity(luan,"uri",name); 703 Luan.checkSecurity(luan,"uri",name);
679 } 704 }
680 705