×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: Karthick Bala
Added: Jul 25, 2014 10:32 AM
Views: 21
Tags: no tags
  1.     public static String validateDomain(String domain) throws Exception{
  2.         String domainErrMsg = null;
  3.         if (domain.trim().length() == 0) {
  4.             domainErrMsg = "specifydomain";
  5.         } else if (domain.length() > 61) {
  6.             domainErrMsg = "domainnamelimit";
  7.         } else if (domain.indexOf("www") == 0) {
  8.             domainErrMsg = "domaincontainswww";
  9.         } else {
  10.             int dotIndex = domain.lastIndexOf(".");
  11.             if (dotIndex != -1) {
  12.                 if (dotIndex > 2 && dotIndex < 57) {
  13.                     String domainName = domain.substring(0, dotIndex);
  14.                     String domainExtension = domain.substring(dotIndex);
  15.                     String[] validDomainExtensions = {
  16.                         ".com", ".net", ".org", ".biz", ".coop", ".info", ".museum", ".name", // No I18N
  17.                         ".pro", ".edu", ".gov", ".int", ".mil", ".ac", ".ad", ".ae", ".af", ".ag", // No I18N
  18.                         ".ai", ".al", ".am", ".an", ".ao", ".aq", ".ar", ".as", ".at", ".au", ".aw", // No I18N
  19.                         ".az", ".ba", ".bb", ".bd", ".be", ".bf", ".bg", ".bh", ".bi", ".bj", ".bm", // No I18N
  20.                         ".bn", ".bo", ".br", ".bs", ".bt", ".bv", ".bw", ".by", ".bz", ".ca", ".cc", // No I18N
  21.                         ".cd", ".cf", ".cg", ".ch", ".ci", ".ck", ".cl", ".cm", ".cn", ".co", ".cr", // No I18N
  22.                         ".cu", ".cv", ".cx", ".cy", ".cz", ".de", ".dj", ".dk", ".dm", ".do", ".dz", // No I18N
  23.                         ".ec", ".ee", ".eg", ".eh", ".er", ".es", ".et", ".fi", ".fj", ".fk", ".fm", // No I18N
  24.                         ".fo", ".fr", ".ga", ".gd", ".ge", ".gf", ".gg", ".gh", ".gi", ".gl", ".gm", // No I18N
  25.                         ".gn", ".gp", ".gq", ".gr", ".gs", ".gt", ".gu", ".gv", ".gy", ".hk", ".hm", // No I18N
  26.                         ".hn", ".hr", ".ht", ".hu", ".id", ".ie", ".il", ".im", ".in", ".io", ".iq", // No I18N
  27.                         ".ir", ".is", ".it", ".je", ".jm", ".jo", ".jp", ".ke", ".kg", ".kh", ".ki", // No I18N
  28.                         ".km", ".kn", ".kp", ".kr", ".kw", ".ky", ".kz", ".la", ".lb", ".lc", ".li", // No I18N
  29.                         ".lk", ".lr", ".ls", ".lt", ".lu", ".lv", ".ly", ".ma", ".mc", ".md", ".mg", // No I18N
  30.                         ".mh", ".mk", ".ml", ".mm", ".mn", ".mo", ".mp", ".mq", ".mr", ".ms", ".mt", // No I18N
  31.                         ".mu", ".mv", ".mw", ".mx", ".my", ".mz", ".na", ".nc", ".ne", ".nf", ".ng", // No I18N
  32.                         ".ni", ".nl", ".no", ".np", ".nr", ".nu", ".nz", ".om", ".pa", ".pe", ".pf", // No I18N
  33.                         ".pg", ".ph", ".pk", ".pl", ".pm", ".pn", ".pr", ".ps", ".pt", ".pw", ".py", // No I18N
  34.                         ".qa", ".re", ".ro", ".rw", ".ru", ".sa", ".sb", ".sc", ".sd", ".se", ".sg", // No I18N
  35.                         ".sh", ".si", ".sj", ".sk", ".sl", ".sm", ".sn", ".so", ".sr", ".st", ".sv", // No I18N
  36.                         ".sy", ".sz", ".tc", ".td", ".tf", ".tg", ".th", ".tj", ".tk", ".tm", ".tn", // No I18N
  37.                         ".to", ".tp", ".tr", ".tt", ".tv", ".tw", ".tz", ".ua", ".ug", ".uk", ".um", // No I18N
  38.                         ".us", ".uy", ".uz", ".va", ".vc", ".ve", ".vg", ".vi", ".vn", ".vu", ".ws", // No I18N
  39.                         ".wf", ".ye", ".yt", ".yu", ".za", ".zm", ".zw"}; // No I18N
  40.                     List<String> validExtensions = Arrays.asList(validDomainExtensions);
  41.                     if (!validExtensions.contains(domainExtension)) {
  42.                         domainErrMsg = "domainextension";
  43.                     } else {
  44.                         for (int i = 0; i < domainName.length(); i++) {
  45.                             int asciiCode = (int) domainName.charAt(i);
  46.                             if ((asciiCode > 47 && asciiCode < 59) || (asciiCode > 64 && asciiCode < 91) || (asciiCode > 96 && asciiCode < 123) || asciiCode == 45 || asciiCode == 46) {
  47.                                 if ((i == 0 || i == domainName.length() - 1) && asciiCode == 45) {
  48.                                     domainErrMsg = "domainsymbolposition";
  49.                                 }
  50.                             } else {
  51.                                 domainErrMsg = "domainspecialcharacters";
  52.                             }
  53.                         }
  54.                     }
  55.                 } else {
  56.                     if (dotIndex <= 1) {
  57.                         domainErrMsg = "domaintooshort";
  58.                     } else if (dotIndex >= 57) {
  59.                         domainErrMsg = "domaintoolong";
  60.                     }
  61.                 }
  62.             } else {
  63.                 domainErrMsg = "domaininvalid";
  64.             }
  65.         }
  66.         return domainErrMsg;
  67.     }