From d4546ae0275ba4047995a6c536970ec20ccd1724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Gangloff?= Date: Thu, 18 Jul 2024 19:13:06 +0200 Subject: [PATCH] feat: RDAP url are stored in db --- migrations/Version20240718170120.php | 32 + src/Config/dns.json | 5426 ----------------------- src/Entity/RdapServer.php | 71 + src/Repository/RdapServerRepository.php | 43 + src/Service/RDAPService.php | 59 +- 5 files changed, 181 insertions(+), 5450 deletions(-) create mode 100644 migrations/Version20240718170120.php delete mode 100644 src/Config/dns.json create mode 100644 src/Entity/RdapServer.php create mode 100644 src/Repository/RdapServerRepository.php diff --git a/migrations/Version20240718170120.php b/migrations/Version20240718170120.php new file mode 100644 index 0000000..0a24834 --- /dev/null +++ b/migrations/Version20240718170120.php @@ -0,0 +1,32 @@ +addSql('CREATE TABLE rdap_server (tld VARCHAR(63) NOT NULL, url VARCHAR(255) NOT NULL, updated_at DATE NOT NULL --(DC2Type:date_immutable) + , PRIMARY KEY(tld, url))'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('DROP TABLE rdap_server'); + } +} diff --git a/src/Config/dns.json b/src/Config/dns.json deleted file mode 100644 index 14294f8..0000000 --- a/src/Config/dns.json +++ /dev/null @@ -1,5426 +0,0 @@ -{ - "description": "RDAP bootstrap file for Domain Name System registrations", - "publication": "2024-07-10T16:00:02Z", - "services": [ - [ - [ - "kg" - ], - [ - "http://rdap.cctld.kg/" - ] - ], - [ - [ - "music" - ], - [ - "http://rdap.centralnic.com/music/" - ] - ], - [ - [ - "ally" - ], - [ - "http://rdap.nic.ally/" - ] - ], - [ - [ - "cpa" - ], - [ - "http://rdap.nic.cpa/" - ] - ], - [ - [ - "merckmsd" - ], - [ - "http://rdap.nic.merckmsd/" - ] - ], - [ - [ - "msd" - ], - [ - "http://rdap.nic.msd/" - ] - ], - [ - [ - "tattoo" - ], - [ - "http://rdap.nic.tattoo/" - ] - ], - [ - [ - "pars" - ], - [ - "https://api.rdap.nic.pars/" - ] - ], - [ - [ - "shia" - ], - [ - "https://api.rdap.nic.shia/" - ] - ], - [ - [ - "tci" - ], - [ - "https://api.rdap.nic.tci/" - ] - ], - [ - [ - "xn--mgbt3dhd" - ], - [ - "https://api.rdap.nic.xn--mgbt3dhd/" - ] - ], - [ - [ - "xn--p1acf" - ], - [ - "https://api.rdap.nic.xn--p1acf/" - ] - ], - [ - [ - "moscow" - ], - [ - "https://flexireg.net/moscow/rdap/" - ] - ], - [ - [ - "xn--80adxhks" - ], - [ - "https://flexireg.net/xn--80adxhks/rdap/" - ] - ], - [ - [ - "samsung", - "xn--cg4bki" - ], - [ - "https://nic.samsung:8443/rdap/" - ] - ], - [ - [ - "tvs" - ], - [ - "https://rdap.afilias-srs.net/rdap/tvs/" - ] - ], - [ - [ - "ca" - ], - [ - "https://rdap.ca.fury.ca/rdap/" - ] - ], - [ - [ - "uz" - ], - [ - "https://rdap.cctld.uz/" - ] - ], - [ - [ - "allfinanz" - ], - [ - "https://rdap.centralnic.com/allfinanz/" - ] - ], - [ - [ - "art" - ], - [ - "https://rdap.centralnic.com/art/" - ] - ], - [ - [ - "audio" - ], - [ - "https://rdap.centralnic.com/audio/" - ] - ], - [ - [ - "auto" - ], - [ - "https://rdap.centralnic.com/auto/" - ] - ], - [ - [ - "autos" - ], - [ - "https://rdap.centralnic.com/autos/" - ] - ], - [ - [ - "baby" - ], - [ - "https://rdap.centralnic.com/baby/" - ] - ], - [ - [ - "basketball" - ], - [ - "https://rdap.centralnic.com/basketball/" - ] - ], - [ - [ - "beauty" - ], - [ - "https://rdap.centralnic.com/beauty/" - ] - ], - [ - [ - "best" - ], - [ - "https://rdap.centralnic.com/best/" - ] - ], - [ - [ - "blog" - ], - [ - "https://rdap.centralnic.com/blog/" - ] - ], - [ - [ - "bmw" - ], - [ - "https://rdap.centralnic.com/bmw/" - ] - ], - [ - [ - "boats" - ], - [ - "https://rdap.centralnic.com/boats/" - ] - ], - [ - [ - "bond" - ], - [ - "https://rdap.centralnic.com/bond/" - ] - ], - [ - [ - "box" - ], - [ - "https://rdap.centralnic.com/box/" - ] - ], - [ - [ - "build" - ], - [ - "https://rdap.centralnic.com/build/" - ] - ], - [ - [ - "cam" - ], - [ - "https://rdap.centralnic.com/cam/" - ] - ], - [ - [ - "car" - ], - [ - "https://rdap.centralnic.com/car/" - ] - ], - [ - [ - "cars" - ], - [ - "https://rdap.centralnic.com/cars/" - ] - ], - [ - [ - "case" - ], - [ - "https://rdap.centralnic.com/case/" - ] - ], - [ - [ - "ceo" - ], - [ - "https://rdap.centralnic.com/ceo/" - ] - ], - [ - [ - "cfd" - ], - [ - "https://rdap.centralnic.com/cfd/" - ] - ], - [ - [ - "christmas" - ], - [ - "https://rdap.centralnic.com/christmas/" - ] - ], - [ - [ - "college" - ], - [ - "https://rdap.centralnic.com/college/" - ] - ], - [ - [ - "cyou" - ], - [ - "https://rdap.centralnic.com/cyou/" - ] - ], - [ - [ - "dealer" - ], - [ - "https://rdap.centralnic.com/dealer/" - ] - ], - [ - [ - "deloitte" - ], - [ - "https://rdap.centralnic.com/deloitte/" - ] - ], - [ - [ - "dhl" - ], - [ - "https://rdap.centralnic.com/dhl/" - ] - ], - [ - [ - "diet" - ], - [ - "https://rdap.centralnic.com/diet/" - ] - ], - [ - [ - "dvag" - ], - [ - "https://rdap.centralnic.com/dvag/" - ] - ], - [ - [ - "fans" - ], - [ - "https://rdap.centralnic.com/fans/" - ] - ], - [ - [ - "feedback" - ], - [ - "https://rdap.centralnic.com/feedback/" - ] - ], - [ - [ - "flowers" - ], - [ - "https://rdap.centralnic.com/flowers/" - ] - ], - [ - [ - "fm" - ], - [ - "https://rdap.centralnic.com/fm/" - ] - ], - [ - [ - "fo" - ], - [ - "https://rdap.centralnic.com/fo/" - ] - ], - [ - [ - "forum" - ], - [ - "https://rdap.centralnic.com/forum/" - ] - ], - [ - [ - "fresenius" - ], - [ - "https://rdap.centralnic.com/fresenius/" - ] - ], - [ - [ - "frl" - ], - [ - "https://rdap.centralnic.com/frl/" - ] - ], - [ - [ - "fun" - ], - [ - "https://rdap.centralnic.com/fun/" - ] - ], - [ - [ - "game" - ], - [ - "https://rdap.centralnic.com/game/" - ] - ], - [ - [ - "gd" - ], - [ - "https://rdap.centralnic.com/gd/" - ] - ], - [ - [ - "gent" - ], - [ - "https://rdap.centralnic.com/gent/" - ] - ], - [ - [ - "guitars" - ], - [ - "https://rdap.centralnic.com/guitars/" - ] - ], - [ - [ - "hair" - ], - [ - "https://rdap.centralnic.com/hair/" - ] - ], - [ - [ - "help" - ], - [ - "https://rdap.centralnic.com/help/" - ] - ], - [ - [ - "homes" - ], - [ - "https://rdap.centralnic.com/homes/" - ] - ], - [ - [ - "host" - ], - [ - "https://rdap.centralnic.com/host/" - ] - ], - [ - [ - "hosting" - ], - [ - "https://rdap.centralnic.com/hosting/" - ] - ], - [ - [ - "icu" - ], - [ - "https://rdap.centralnic.com/icu/" - ] - ], - [ - [ - "inc" - ], - [ - "https://rdap.centralnic.com/inc/" - ] - ], - [ - [ - "kfh" - ], - [ - "https://rdap.centralnic.com/kfh/" - ] - ], - [ - [ - "kpn" - ], - [ - "https://rdap.centralnic.com/kpn/" - ] - ], - [ - [ - "kred" - ], - [ - "https://rdap.centralnic.com/kred/" - ] - ], - [ - [ - "lat" - ], - [ - "https://rdap.centralnic.com/lat/" - ] - ], - [ - [ - "lidl" - ], - [ - "https://rdap.centralnic.com/lidl/" - ] - ], - [ - [ - "llp" - ], - [ - "https://rdap.centralnic.com/llp/" - ] - ], - [ - [ - "lol" - ], - [ - "https://rdap.centralnic.com/lol/" - ] - ], - [ - [ - "london" - ], - [ - "https://rdap.centralnic.com/london/" - ] - ], - [ - [ - "lpl" - ], - [ - "https://rdap.centralnic.com/lpl/" - ] - ], - [ - [ - "lplfinancial" - ], - [ - "https://rdap.centralnic.com/lplfinancial/" - ] - ], - [ - [ - "luxury" - ], - [ - "https://rdap.centralnic.com/luxury/" - ] - ], - [ - [ - "makeup" - ], - [ - "https://rdap.centralnic.com/makeup/" - ] - ], - [ - [ - "mini" - ], - [ - "https://rdap.centralnic.com/mini/" - ] - ], - [ - [ - "mom" - ], - [ - "https://rdap.centralnic.com/mom/" - ] - ], - [ - [ - "monster" - ], - [ - "https://rdap.centralnic.com/monster/" - ] - ], - [ - [ - "motorcycles" - ], - [ - "https://rdap.centralnic.com/motorcycles/" - ] - ], - [ - [ - "nokia" - ], - [ - "https://rdap.centralnic.com/nokia/" - ] - ], - [ - [ - "online" - ], - [ - "https://rdap.centralnic.com/online/" - ] - ], - [ - [ - "ooo" - ], - [ - "https://rdap.centralnic.com/ooo/" - ] - ], - [ - [ - "pics" - ], - [ - "https://rdap.centralnic.com/pics/" - ] - ], - [ - [ - "pid" - ], - [ - "https://rdap.centralnic.com/pid/" - ] - ], - [ - [ - "pohl" - ], - [ - "https://rdap.centralnic.com/pohl/" - ] - ], - [ - [ - "press" - ], - [ - "https://rdap.centralnic.com/press/" - ] - ], - [ - [ - "protection" - ], - [ - "https://rdap.centralnic.com/protection/" - ] - ], - [ - [ - "pw" - ], - [ - "https://rdap.centralnic.com/pw/" - ] - ], - [ - [ - "qpon" - ], - [ - "https://rdap.centralnic.com/qpon/" - ] - ], - [ - [ - "quest" - ], - [ - "https://rdap.centralnic.com/quest/" - ] - ], - [ - [ - "reit" - ], - [ - "https://rdap.centralnic.com/reit/" - ] - ], - [ - [ - "rent" - ], - [ - "https://rdap.centralnic.com/rent/" - ] - ], - [ - [ - "rugby" - ], - [ - "https://rdap.centralnic.com/rugby/" - ] - ], - [ - [ - "ruhr" - ], - [ - "https://rdap.centralnic.com/ruhr/" - ] - ], - [ - [ - "saarland" - ], - [ - "https://rdap.centralnic.com/saarland/" - ] - ], - [ - [ - "sbs" - ], - [ - "https://rdap.centralnic.com/sbs/" - ] - ], - [ - [ - "schwarz" - ], - [ - "https://rdap.centralnic.com/schwarz/" - ] - ], - [ - [ - "security" - ], - [ - "https://rdap.centralnic.com/security/" - ] - ], - [ - [ - "sfr" - ], - [ - "https://rdap.centralnic.com/sfr/" - ] - ], - [ - [ - "site" - ], - [ - "https://rdap.centralnic.com/site/" - ] - ], - [ - [ - "skin" - ], - [ - "https://rdap.centralnic.com/skin/" - ] - ], - [ - [ - "smart" - ], - [ - "https://rdap.centralnic.com/smart/" - ] - ], - [ - [ - "space" - ], - [ - "https://rdap.centralnic.com/space/" - ] - ], - [ - [ - "stc" - ], - [ - "https://rdap.centralnic.com/stc/" - ] - ], - [ - [ - "stcgroup" - ], - [ - "https://rdap.centralnic.com/stcgroup/" - ] - ], - [ - [ - "storage" - ], - [ - "https://rdap.centralnic.com/storage/" - ] - ], - [ - [ - "store" - ], - [ - "https://rdap.centralnic.com/store/" - ] - ], - [ - [ - "tech" - ], - [ - "https://rdap.centralnic.com/tech/" - ] - ], - [ - [ - "theatre" - ], - [ - "https://rdap.centralnic.com/theatre/" - ] - ], - [ - [ - "tickets" - ], - [ - "https://rdap.centralnic.com/tickets/" - ] - ], - [ - [ - "tui" - ], - [ - "https://rdap.centralnic.com/tui/" - ] - ], - [ - [ - "uno" - ], - [ - "https://rdap.centralnic.com/uno/" - ] - ], - [ - [ - "vg" - ], - [ - "https://rdap.centralnic.com/vg/" - ] - ], - [ - [ - "viva" - ], - [ - "https://rdap.centralnic.com/viva/" - ] - ], - [ - [ - "website" - ], - [ - "https://rdap.centralnic.com/website/" - ] - ], - [ - [ - "wme" - ], - [ - "https://rdap.centralnic.com/wme/" - ] - ], - [ - [ - "xn--4gbrim" - ], - [ - "https://rdap.centralnic.com/xn--4gbrim/" - ] - ], - [ - [ - "xn--ngbe9e0a" - ], - [ - "https://rdap.centralnic.com/xn--ngbe9e0a/" - ] - ], - [ - [ - "xn--vermgensberater-ctb" - ], - [ - "https://rdap.centralnic.com/xn--vermgensberater-ctb/" - ] - ], - [ - [ - "xn--vermgensberatung-pwb" - ], - [ - "https://rdap.centralnic.com/xn--vermgensberatung-pwb/" - ] - ], - [ - [ - "xyz" - ], - [ - "https://rdap.centralnic.com/xyz/" - ] - ], - [ - [ - "yachts" - ], - [ - "https://rdap.centralnic.com/yachts/" - ] - ], - [ - [ - "zuerich" - ], - [ - "https://rdap.centralnic.com/zuerich/" - ] - ], - [ - [ - "xn--55qw42g", - "xn--zfr164b" - ], - [ - "https://rdap.conac.cn/" - ] - ], - [ - [ - "crown" - ], - [ - "https://rdap.crown.fury.ca/rdap/" - ] - ], - [ - [ - "xn--5tzm5g" - ], - [ - "https://rdap.donuts.co/rdap/" - ] - ], - [ - [ - "eco" - ], - [ - "https://rdap.eco.fury.ca/rdap/" - ] - ], - [ - [ - "fi" - ], - [ - "https://rdap.fi/rdap/rdap/" - ] - ], - [ - [ - "bridgestone", - "brother", - "canon", - "datsun", - "dnp", - "epson", - "firestone", - "fujitsu", - "ggee", - "gmo", - "goldpoint", - "goo", - "hisamitsu", - "hitachi", - "honda", - "hyundai", - "infiniti", - "jcb", - "kddi", - "kia", - "komatsu", - "kyoto", - "lexus", - "lotte", - "mitsubishi", - "nagoya", - "nec", - "nhk", - "nico", - "nissan", - "okinawa", - "otsuka", - "panasonic", - "playstation", - "ricoh", - "ryukyu", - "sharp", - "shop", - "softbank", - "sony", - "suzuki", - "tokyo", - "toray", - "toshiba", - "toyota", - "yodobashi", - "yokohama" - ], - [ - "https://rdap.gmoregistry.net/rdap/" - ] - ], - [ - [ - "bom", - "final", - "globo", - "rio", - "uol" - ], - [ - "https://rdap.gtlds.nic.br/" - ] - ], - [ - [ - "ua" - ], - [ - "https://rdap.hostmaster.ua/" - ] - ], - [ - [ - "int" - ], - [ - "https://rdap.iana.org/" - ] - ], - [ - [ - "abb", - "abbott", - "academy", - "accenture", - "accountants", - "actor", - "aeg", - "aero", - "agakhan", - "agency", - "airforce", - "akdn", - "alibaba", - "alipay", - "allstate", - "aol", - "apartments", - "apple", - "archi", - "army", - "arte", - "asda", - "asia", - "associates", - "attorney", - "auction", - "audi", - "band", - "barclaycard", - "barclays", - "barefoot", - "bargains", - "bbt", - "bcg", - "beats", - "bestbuy", - "bet", - "bike", - "bingo", - "bio", - "black", - "blockbuster", - "bloomberg", - "blue", - "bm", - "bms", - "bnpparibas", - "boehringer", - "bofa", - "bosch", - "boutique", - "bradesco", - "broker", - "builders", - "business", - "cab", - "cafe", - "camera", - "camp", - "capital", - "cards", - "care", - "careers", - "cash", - "casino", - "catering", - "center", - "cern", - "cfa", - "chanel", - "chat", - "cheap", - "church", - "cipriani", - "citadel", - "city", - "claims", - "cleaning", - "clinic", - "clinique", - "clothing", - "clubmed", - "coach", - "codes", - "coffee", - "community", - "company", - "computer", - "condos", - "construction", - "consulting", - "contact", - "contractors", - "cool", - "coupons", - "credit", - "creditcard", - "crs", - "cruise", - "cruises", - "dabur", - "dance", - "data", - "dating", - "deals", - "degree", - "delivery", - "delta", - "democrat", - "dental", - "dentist", - "diamonds", - "digital", - "direct", - "directory", - "discount", - "dish", - "doctor", - "dog", - "domains", - "dot", - "dtv", - "dunlop", - "dvr", - "edeka", - "education", - "email", - "emerck", - "energy", - "engineer", - "engineering", - "enterprises", - "equipment", - "ericsson", - "estate", - "events", - "exchange", - "expert", - "exposed", - "express", - "extraspace", - "fage", - "fail", - "family", - "fan", - "farm", - "fedex", - "ferrari", - "fidelity", - "fido", - "finance", - "financial", - "fish", - "fitness", - "flights", - "florist", - "football", - "forex", - "forsale", - "frogans", - "fund", - "furniture", - "futbol", - "fyi", - "gallery", - "gallo", - "gallup", - "games", - "genting", - "george", - "gifts", - "glass", - "global", - "gmbh", - "gold", - "golf", - "goodyear", - "graphics", - "gratis", - "green", - "gripe", - "grocery", - "group", - "guide", - "guru", - "haus", - "hdfc", - "hdfcbank", - "healthcare", - "helsinki", - "hermes", - "hkt", - "hockey", - "holdings", - "holiday", - "homedepot", - "hospital", - "house", - "hughes", - "ice", - "imamat", - "immo", - "immobilien", - "industries", - "info", - "institute", - "insure", - "international", - "investments", - "irish", - "ismaili", - "ist", - "istanbul", - "itv", - "jaguar", - "java", - "jeep", - "jetzt", - "jewelry", - "jio", - "jll", - "juniper", - "kaufen", - "kerryhotels", - "kerrylogistics", - "kerryproperties", - "kids", - "kim", - "kitchen", - "kosher", - "kuokgroup", - "lamborghini", - "lamer", - "land", - "landrover", - "lasalle", - "latino", - "lawyer", - "lds", - "lease", - "lefrak", - "legal", - "lgbt", - "life", - "lighting", - "limited", - "limo", - "lipsy", - "live", - "llc", - "loans", - "locker", - "lotto", - "ltd", - "ltda", - "lundbeck", - "maif", - "maison", - "management", - "market", - "marketing", - "markets", - "marriott", - "mba", - "mckinsey", - "media", - "memorial", - "mit", - "mobi", - "mobile", - "moda", - "money", - "mormon", - "mortgage", - "movie", - "nab", - "navy", - "network", - "news", - "next", - "nextdirect", - "nikon", - "ninja", - "nowtv", - "nra", - "obi", - "ollo", - "onl", - "oracle", - "orange", - "organic", - "origins", - "ott", - "partners", - "parts", - "pccw", - "pet", - "phone", - "photography", - "photos", - "pictet", - "pictures", - "pink", - "pizza", - "place", - "plumbing", - "plus", - "pnc", - "poker", - "post", - "pro", - "productions", - "progressive", - "promo", - "properties", - "pub", - "pwc", - "recipes", - "red", - "redumbrella", - "rehab", - "reise", - "reisen", - "reliance", - "rentals", - "repair", - "report", - "republican", - "restaurant", - "reviews", - "rexroth", - "rich", - "richardli", - "ril", - "rip", - "rocks", - "rogers", - "run", - "sale", - "salon", - "samsclub", - "sanofi", - "sarl", - "saxo", - "sbi", - "scholarships", - "school", - "schule", - "services", - "sew", - "shangrila", - "shiksha", - "shoes", - "shopping", - "show", - "sina", - "singles", - "ski", - "sling", - "soccer", - "social", - "software", - "solar", - "solutions", - "spa", - "srl", - "stada", - "star", - "statebank", - "stockholm", - "studio", - "style", - "supplies", - "supply", - "support", - "surgery", - "systems", - "taobao", - "tatamotors", - "tax", - "taxi", - "team", - "technology", - "temasek", - "tennis", - "thd", - "theater", - "tiaa", - "tienda", - "tips", - "tires", - "tmall", - "today", - "tools", - "tours", - "town", - "toys", - "trading", - "training", - "travel", - "travelers", - "travelersinsurance", - "trv", - "ubank", - "ubs", - "university", - "ups", - "vacations", - "vanguard", - "vegas", - "ventures", - "vet", - "viajes", - "video", - "vig", - "viking", - "villas", - "vin", - "vision", - "volvo", - "vote", - "voto", - "voyage", - "walmart", - "watch", - "watches", - "weibo", - "weir", - "wine", - "wolterskluwer", - "works", - "world", - "wtf", - "xin", - "xn--6frz82g", - "xn--9krt00a", - "xn--b4w605ferd", - "xn--czrs0t", - "xn--fjq720a", - "xn--fzys8d69uvgm", - "xn--unup4y", - "xn--vhquv", - "zara", - "zone" - ], - [ - "https://rdap.identitydigital.services/rdap/" - ] - ], - [ - [ - "is" - ], - [ - "https://rdap.isnic.is/rdap/" - ] - ], - [ - [ - "kiwi" - ], - [ - "https://rdap.kiwi.fury.ca/rdap/" - ] - ], - [ - [ - "lb" - ], - [ - "https://rdap.lbdr.org.lb/" - ] - ], - [ - [ - "mls" - ], - [ - "https://rdap.mls.fury.ca/rdap/" - ] - ], - [ - [ - "aaa" - ], - [ - "https://rdap.nic.aaa/" - ] - ], - [ - [ - "able" - ], - [ - "https://rdap.nic.able/" - ] - ], - [ - [ - "abogado" - ], - [ - "https://rdap.nic.abogado/" - ] - ], - [ - [ - "abudhabi" - ], - [ - "https://rdap.nic.abudhabi/" - ] - ], - [ - [ - "accountant" - ], - [ - "https://rdap.nic.accountant/" - ] - ], - [ - [ - "aco" - ], - [ - "https://rdap.nic.aco/" - ] - ], - [ - [ - "adult" - ], - [ - "https://rdap.nic.adult/" - ] - ], - [ - [ - "aetna" - ], - [ - "https://rdap.nic.aetna/" - ] - ], - [ - [ - "afl" - ], - [ - "https://rdap.nic.afl/" - ] - ], - [ - [ - "africa" - ], - [ - "https://rdap.nic.africa/rdap/" - ] - ], - [ - [ - "aig" - ], - [ - "https://rdap.nic.aig/" - ] - ], - [ - [ - "alsace" - ], - [ - "https://rdap.nic.alsace/" - ] - ], - [ - [ - "alstom" - ], - [ - "https://rdap.nic.alstom/" - ] - ], - [ - [ - "americanexpress" - ], - [ - "https://rdap.nic.americanexpress/" - ] - ], - [ - [ - "amex" - ], - [ - "https://rdap.nic.amex/" - ] - ], - [ - [ - "amica" - ], - [ - "https://rdap.nic.amica/" - ] - ], - [ - [ - "amsterdam" - ], - [ - "https://rdap.nic.amsterdam/" - ] - ], - [ - [ - "analytics" - ], - [ - "https://rdap.nic.analytics/" - ] - ], - [ - [ - "anz" - ], - [ - "https://rdap.nic.anz/" - ] - ], - [ - [ - "aquarelle" - ], - [ - "https://rdap.nic.aquarelle/" - ] - ], - [ - [ - "ar" - ], - [ - "https://rdap.nic.ar/" - ] - ], - [ - [ - "arab" - ], - [ - "https://rdap.nic.arab/" - ] - ], - [ - [ - "aramco" - ], - [ - "https://rdap.nic.aramco/" - ] - ], - [ - [ - "athleta" - ], - [ - "https://rdap.nic.athleta/" - ] - ], - [ - [ - "auspost" - ], - [ - "https://rdap.nic.auspost/" - ] - ], - [ - [ - "axa" - ], - [ - "https://rdap.nic.axa/" - ] - ], - [ - [ - "banamex" - ], - [ - "https://rdap.nic.banamex/" - ] - ], - [ - [ - "bank" - ], - [ - "https://rdap.nic.bank/" - ] - ], - [ - [ - "barcelona" - ], - [ - "https://rdap.nic.barcelona/" - ] - ], - [ - [ - "baseball" - ], - [ - "https://rdap.nic.baseball/" - ] - ], - [ - [ - "bauhaus" - ], - [ - "https://rdap.nic.bauhaus/" - ] - ], - [ - [ - "bayern" - ], - [ - "https://rdap.nic.bayern/" - ] - ], - [ - [ - "bcn" - ], - [ - "https://rdap.nic.bcn/" - ] - ], - [ - [ - "beer" - ], - [ - "https://rdap.nic.beer/" - ] - ], - [ - [ - "berlin" - ], - [ - "https://rdap.nic.berlin/v1/" - ] - ], - [ - [ - "bible" - ], - [ - "https://rdap.nic.bible/" - ] - ], - [ - [ - "bid" - ], - [ - "https://rdap.nic.bid/" - ] - ], - [ - [ - "biz" - ], - [ - "https://rdap.nic.biz/" - ] - ], - [ - [ - "blackfriday" - ], - [ - "https://rdap.nic.blackfriday/" - ] - ], - [ - [ - "booking" - ], - [ - "https://rdap.nic.booking/" - ] - ], - [ - [ - "bostik" - ], - [ - "https://rdap.nic.bostik/" - ] - ], - [ - [ - "boston" - ], - [ - "https://rdap.nic.boston/" - ] - ], - [ - [ - "brussels" - ], - [ - "https://rdap.nic.brussels/" - ] - ], - [ - [ - "buzz" - ], - [ - "https://rdap.nic.buzz/" - ] - ], - [ - [ - "bzh" - ], - [ - "https://rdap.nic.bzh/" - ] - ], - [ - [ - "calvinklein" - ], - [ - "https://rdap.nic.calvinklein/" - ] - ], - [ - [ - "capetown" - ], - [ - "https://rdap.nic.capetown/rdap/" - ] - ], - [ - [ - "caravan" - ], - [ - "https://rdap.nic.caravan/" - ] - ], - [ - [ - "casa" - ], - [ - "https://rdap.nic.casa/" - ] - ], - [ - [ - "cat" - ], - [ - "https://rdap.nic.cat/" - ] - ], - [ - [ - "catholic" - ], - [ - "https://rdap.nic.catholic/" - ] - ], - [ - [ - "cba" - ], - [ - "https://rdap.nic.cba/" - ] - ], - [ - [ - "cbn" - ], - [ - "https://rdap.nic.cbn/" - ] - ], - [ - [ - "cbre" - ], - [ - "https://rdap.nic.cbre/" - ] - ], - [ - [ - "chase" - ], - [ - "https://rdap.nic.chase/" - ] - ], - [ - [ - "chintai" - ], - [ - "https://rdap.nic.chintai/" - ] - ], - [ - [ - "cisco" - ], - [ - "https://rdap.nic.cisco/" - ] - ], - [ - [ - "citi" - ], - [ - "https://rdap.nic.citi/" - ] - ], - [ - [ - "club" - ], - [ - "https://rdap.nic.club/" - ] - ], - [ - [ - "commbank" - ], - [ - "https://rdap.nic.commbank/" - ] - ], - [ - [ - "compare" - ], - [ - "https://rdap.nic.compare/" - ] - ], - [ - [ - "cooking" - ], - [ - "https://rdap.nic.cooking/" - ] - ], - [ - [ - "corsica" - ], - [ - "https://rdap.nic.corsica/" - ] - ], - [ - [ - "coupon" - ], - [ - "https://rdap.nic.coupon/" - ] - ], - [ - [ - "courses" - ], - [ - "https://rdap.nic.courses/" - ] - ], - [ - [ - "cr" - ], - [ - "https://rdap.nic.cr/" - ] - ], - [ - [ - "cricket" - ], - [ - "https://rdap.nic.cricket/" - ] - ], - [ - [ - "cuisinella" - ], - [ - "https://rdap.nic.cuisinella/" - ] - ], - [ - [ - "cv" - ], - [ - "https://rdap.nic.cv/" - ] - ], - [ - [ - "cx" - ], - [ - "https://rdap.nic.cx/" - ] - ], - [ - [ - "cz" - ], - [ - "https://rdap.nic.cz/" - ] - ], - [ - [ - "date" - ], - [ - "https://rdap.nic.date/" - ] - ], - [ - [ - "dds" - ], - [ - "https://rdap.nic.dds/" - ] - ], - [ - [ - "dell" - ], - [ - "https://rdap.nic.dell/" - ] - ], - [ - [ - "design" - ], - [ - "https://rdap.nic.design/" - ] - ], - [ - [ - "discover" - ], - [ - "https://rdap.nic.discover/" - ] - ], - [ - [ - "download" - ], - [ - "https://rdap.nic.download/" - ] - ], - [ - [ - "dubai" - ], - [ - "https://rdap.nic.dubai/" - ] - ], - [ - [ - "dupont" - ], - [ - "https://rdap.nic.dupont/" - ] - ], - [ - [ - "durban" - ], - [ - "https://rdap.nic.durban/rdap/" - ] - ], - [ - [ - "earth" - ], - [ - "https://rdap.nic.earth/" - ] - ], - [ - [ - "erni" - ], - [ - "https://rdap.nic.erni/" - ] - ], - [ - [ - "eurovision" - ], - [ - "https://rdap.nic.eurovision/" - ] - ], - [ - [ - "eus" - ], - [ - "https://rdap.nic.eus/" - ] - ], - [ - [ - "faith" - ], - [ - "https://rdap.nic.faith/" - ] - ], - [ - [ - "farmers" - ], - [ - "https://rdap.nic.farmers/" - ] - ], - [ - [ - "fashion" - ], - [ - "https://rdap.nic.fashion/" - ] - ], - [ - [ - "ferrero" - ], - [ - "https://rdap.nic.ferrero/" - ] - ], - [ - [ - "film" - ], - [ - "https://rdap.nic.film/" - ] - ], - [ - [ - "firmdale" - ], - [ - "https://rdap.nic.firmdale/" - ] - ], - [ - [ - "fishing" - ], - [ - "https://rdap.nic.fishing/" - ] - ], - [ - [ - "fit" - ], - [ - "https://rdap.nic.fit/" - ] - ], - [ - [ - "flickr" - ], - [ - "https://rdap.nic.flickr/" - ] - ], - [ - [ - "flir" - ], - [ - "https://rdap.nic.flir/" - ] - ], - [ - [ - "ford" - ], - [ - "https://rdap.nic.ford/" - ] - ], - [ - [ - "fox" - ], - [ - "https://rdap.nic.fox/" - ] - ], - [ - [ - "fr" - ], - [ - "https://rdap.nic.fr/" - ] - ], - [ - [ - "frontier" - ], - [ - "https://rdap.nic.frontier/" - ] - ], - [ - [ - "ftr" - ], - [ - "https://rdap.nic.ftr/" - ] - ], - [ - [ - "gal" - ], - [ - "https://rdap.nic.gal/" - ] - ], - [ - [ - "gap" - ], - [ - "https://rdap.nic.gap/" - ] - ], - [ - [ - "garden" - ], - [ - "https://rdap.nic.garden/" - ] - ], - [ - [ - "gay" - ], - [ - "https://rdap.nic.gay/" - ] - ], - [ - [ - "gdn" - ], - [ - "https://rdap.nic.gdn/" - ] - ], - [ - [ - "gea" - ], - [ - "https://rdap.nic.gea/" - ] - ], - [ - [ - "gmx" - ], - [ - "https://rdap.nic.gmx/" - ] - ], - [ - [ - "godaddy" - ], - [ - "https://rdap.nic.godaddy/" - ] - ], - [ - [ - "grainger" - ], - [ - "https://rdap.nic.grainger/" - ] - ], - [ - [ - "gs" - ], - [ - "https://rdap.nic.gs/" - ] - ], - [ - [ - "hamburg" - ], - [ - "https://rdap.nic.hamburg/v1/" - ] - ], - [ - [ - "hbo" - ], - [ - "https://rdap.nic.hbo/" - ] - ], - [ - [ - "health" - ], - [ - "https://rdap.nic.health/" - ] - ], - [ - [ - "homegoods" - ], - [ - "https://rdap.nic.homegoods/" - ] - ], - [ - [ - "homesense" - ], - [ - "https://rdap.nic.homesense/" - ] - ], - [ - [ - "horse" - ], - [ - "https://rdap.nic.horse/" - ] - ], - [ - [ - "hotels" - ], - [ - "https://rdap.nic.hotels/" - ] - ], - [ - [ - "hsbc" - ], - [ - "https://rdap.nic.hsbc/" - ] - ], - [ - [ - "hyatt" - ], - [ - "https://rdap.nic.hyatt/" - ] - ], - [ - [ - "ibm" - ], - [ - "https://rdap.nic.ibm/" - ] - ], - [ - [ - "ifm" - ], - [ - "https://rdap.nic.ifm/" - ] - ], - [ - [ - "ikano" - ], - [ - "https://rdap.nic.ikano/v1/" - ] - ], - [ - [ - "ink" - ], - [ - "https://rdap.nic.ink/" - ] - ], - [ - [ - "insurance" - ], - [ - "https://rdap.nic.insurance/" - ] - ], - [ - [ - "intuit" - ], - [ - "https://rdap.nic.intuit/" - ] - ], - [ - [ - "ipiranga" - ], - [ - "https://rdap.nic.ipiranga/" - ] - ], - [ - [ - "itau" - ], - [ - "https://rdap.nic.itau/" - ] - ], - [ - [ - "jmp" - ], - [ - "https://rdap.nic.jmp/" - ] - ], - [ - [ - "jnj" - ], - [ - "https://rdap.nic.jnj/" - ] - ], - [ - [ - "joburg" - ], - [ - "https://rdap.nic.joburg/rdap/" - ] - ], - [ - [ - "jpmorgan" - ], - [ - "https://rdap.nic.jpmorgan/" - ] - ], - [ - [ - "jprs" - ], - [ - "https://rdap.nic.jprs/rdap/" - ] - ], - [ - [ - "kpmg" - ], - [ - "https://rdap.nic.kpmg/" - ] - ], - [ - [ - "krd" - ], - [ - "https://rdap.nic.krd/" - ] - ], - [ - [ - "lacaixa" - ], - [ - "https://rdap.nic.lacaixa/" - ] - ], - [ - [ - "lancaster" - ], - [ - "https://rdap.nic.lancaster/" - ] - ], - [ - [ - "lanxess" - ], - [ - "https://rdap.nic.lanxess/" - ] - ], - [ - [ - "latrobe" - ], - [ - "https://rdap.nic.latrobe/" - ] - ], - [ - [ - "law" - ], - [ - "https://rdap.nic.law/" - ] - ], - [ - [ - "leclerc" - ], - [ - "https://rdap.nic.leclerc/" - ] - ], - [ - [ - "lifeinsurance" - ], - [ - "https://rdap.nic.lifeinsurance/" - ] - ], - [ - [ - "lilly" - ], - [ - "https://rdap.nic.lilly/" - ] - ], - [ - [ - "lincoln" - ], - [ - "https://rdap.nic.lincoln/" - ] - ], - [ - [ - "loan" - ], - [ - "https://rdap.nic.loan/" - ] - ], - [ - [ - "luxe" - ], - [ - "https://rdap.nic.luxe/" - ] - ], - [ - [ - "madrid" - ], - [ - "https://rdap.nic.madrid/" - ] - ], - [ - [ - "man" - ], - [ - "https://rdap.nic.man/" - ] - ], - [ - [ - "mango" - ], - [ - "https://rdap.nic.mango/" - ] - ], - [ - [ - "marshalls" - ], - [ - "https://rdap.nic.marshalls/" - ] - ], - [ - [ - "mattel" - ], - [ - "https://rdap.nic.mattel/" - ] - ], - [ - [ - "melbourne" - ], - [ - "https://rdap.nic.melbourne/" - ] - ], - [ - [ - "men" - ], - [ - "https://rdap.nic.men/" - ] - ], - [ - [ - "menu" - ], - [ - "https://rdap.nic.menu/" - ] - ], - [ - [ - "miami" - ], - [ - "https://rdap.nic.miami/" - ] - ], - [ - [ - "mint" - ], - [ - "https://rdap.nic.mint/" - ] - ], - [ - [ - "mlb" - ], - [ - "https://rdap.nic.mlb/" - ] - ], - [ - [ - "mma" - ], - [ - "https://rdap.nic.mma/" - ] - ], - [ - [ - "moe" - ], - [ - "https://rdap.nic.moe/" - ] - ], - [ - [ - "monash" - ], - [ - "https://rdap.nic.monash/" - ] - ], - [ - [ - "moto" - ], - [ - "https://rdap.nic.moto/" - ] - ], - [ - [ - "ms" - ], - [ - "https://rdap.nic.ms/" - ] - ], - [ - [ - "museum" - ], - [ - "https://rdap.nic.museum/" - ] - ], - [ - [ - "nba" - ], - [ - "https://rdap.nic.nba/" - ] - ], - [ - [ - "netbank" - ], - [ - "https://rdap.nic.netbank/" - ] - ], - [ - [ - "netflix" - ], - [ - "https://rdap.nic.netflix/" - ] - ], - [ - [ - "neustar" - ], - [ - "https://rdap.nic.neustar/" - ] - ], - [ - [ - "nf" - ], - [ - "https://rdap.nic.nf/" - ] - ], - [ - [ - "nfl" - ], - [ - "https://rdap.nic.nfl/" - ] - ], - [ - [ - "nike" - ], - [ - "https://rdap.nic.nike/" - ] - ], - [ - [ - "nrw" - ], - [ - "https://rdap.nic.nrw/" - ] - ], - [ - [ - "ntt" - ], - [ - "https://rdap.nic.ntt/rdap/" - ] - ], - [ - [ - "nyc" - ], - [ - "https://rdap.nic.nyc/" - ] - ], - [ - [ - "office" - ], - [ - "https://rdap.nic.office/" - ] - ], - [ - [ - "olayan" - ], - [ - "https://rdap.nic.olayan/" - ] - ], - [ - [ - "olayangroup" - ], - [ - "https://rdap.nic.olayangroup/" - ] - ], - [ - [ - "one" - ], - [ - "https://rdap.nic.one/" - ] - ], - [ - [ - "open" - ], - [ - "https://rdap.nic.open/" - ] - ], - [ - [ - "osaka" - ], - [ - "https://rdap.nic.osaka/" - ] - ], - [ - [ - "ovh" - ], - [ - "https://rdap.nic.ovh/" - ] - ], - [ - [ - "paris" - ], - [ - "https://rdap.nic.paris/" - ] - ], - [ - [ - "party" - ], - [ - "https://rdap.nic.party/" - ] - ], - [ - [ - "pfizer" - ], - [ - "https://rdap.nic.pfizer/" - ] - ], - [ - [ - "philips" - ], - [ - "https://rdap.nic.philips/" - ] - ], - [ - [ - "photo" - ], - [ - "https://rdap.nic.photo/" - ] - ], - [ - [ - "physio" - ], - [ - "https://rdap.nic.physio/" - ] - ], - [ - [ - "ping" - ], - [ - "https://rdap.nic.ping/" - ] - ], - [ - [ - "pm" - ], - [ - "https://rdap.nic.pm/" - ] - ], - [ - [ - "politie" - ], - [ - "https://rdap.nic.politie/" - ] - ], - [ - [ - "porn" - ], - [ - "https://rdap.nic.porn/" - ] - ], - [ - [ - "pramerica" - ], - [ - "https://rdap.nic.pramerica/" - ] - ], - [ - [ - "praxi" - ], - [ - "https://rdap.nic.praxi/" - ] - ], - [ - [ - "pru" - ], - [ - "https://rdap.nic.pru/" - ] - ], - [ - [ - "prudential" - ], - [ - "https://rdap.nic.prudential/" - ] - ], - [ - [ - "quebec" - ], - [ - "https://rdap.nic.quebec/" - ] - ], - [ - [ - "racing" - ], - [ - "https://rdap.nic.racing/" - ] - ], - [ - [ - "radio" - ], - [ - "https://rdap.nic.radio/" - ] - ], - [ - [ - "re" - ], - [ - "https://rdap.nic.re/" - ] - ], - [ - [ - "review" - ], - [ - "https://rdap.nic.review/" - ] - ], - [ - [ - "rodeo" - ], - [ - "https://rdap.nic.rodeo/" - ] - ], - [ - [ - "safety" - ], - [ - "https://rdap.nic.safety/" - ] - ], - [ - [ - "sakura" - ], - [ - "https://rdap.nic.sakura/rdap/" - ] - ], - [ - [ - "sandvik" - ], - [ - "https://rdap.nic.sandvik/" - ] - ], - [ - [ - "sandvikcoromant" - ], - [ - "https://rdap.nic.sandvikcoromant/" - ] - ], - [ - [ - "sap" - ], - [ - "https://rdap.nic.sap/" - ] - ], - [ - [ - "sas" - ], - [ - "https://rdap.nic.sas/" - ] - ], - [ - [ - "scb" - ], - [ - "https://rdap.nic.scb/" - ] - ], - [ - [ - "schaeffler" - ], - [ - "https://rdap.nic.schaeffler/" - ] - ], - [ - [ - "schmidt" - ], - [ - "https://rdap.nic.schmidt/" - ] - ], - [ - [ - "science" - ], - [ - "https://rdap.nic.science/" - ] - ], - [ - [ - "scot" - ], - [ - "https://rdap.nic.scot/" - ] - ], - [ - [ - "sd" - ], - [ - "https://rdap.nic.sd/" - ] - ], - [ - [ - "seat" - ], - [ - "https://rdap.nic.seat/" - ] - ], - [ - [ - "seek" - ], - [ - "https://rdap.nic.seek/" - ] - ], - [ - [ - "select" - ], - [ - "https://rdap.nic.select/" - ] - ], - [ - [ - "seven" - ], - [ - "https://rdap.nic.seven/" - ] - ], - [ - [ - "sex" - ], - [ - "https://rdap.nic.sex/" - ] - ], - [ - [ - "skype" - ], - [ - "https://rdap.nic.skype/" - ] - ], - [ - [ - "sncf" - ], - [ - "https://rdap.nic.sncf/" - ] - ], - [ - [ - "song" - ], - [ - "https://rdap.nic.song/" - ] - ], - [ - [ - "sport" - ], - [ - "https://rdap.nic.sport/" - ] - ], - [ - [ - "ss" - ], - [ - "https://rdap.nic.ss/" - ] - ], - [ - [ - "staples" - ], - [ - "https://rdap.nic.staples/" - ] - ], - [ - [ - "statefarm" - ], - [ - "https://rdap.nic.statefarm/" - ] - ], - [ - [ - "stream" - ], - [ - "https://rdap.nic.stream/" - ] - ], - [ - [ - "study" - ], - [ - "https://rdap.nic.study/" - ] - ], - [ - [ - "sucks" - ], - [ - "https://rdap.nic.sucks/" - ] - ], - [ - [ - "surf" - ], - [ - "https://rdap.nic.surf/" - ] - ], - [ - [ - "swiss" - ], - [ - "https://rdap.nic.swiss/" - ] - ], - [ - [ - "sydney" - ], - [ - "https://rdap.nic.sydney/" - ] - ], - [ - [ - "tab" - ], - [ - "https://rdap.nic.tab/" - ] - ], - [ - [ - "taipei" - ], - [ - "https://rdap.nic.taipei/" - ] - ], - [ - [ - "target" - ], - [ - "https://rdap.nic.target/" - ] - ], - [ - [ - "tdk" - ], - [ - "https://rdap.nic.tdk/" - ] - ], - [ - [ - "tel" - ], - [ - "https://rdap.nic.tel/" - ] - ], - [ - [ - "teva" - ], - [ - "https://rdap.nic.teva/" - ] - ], - [ - [ - "tf" - ], - [ - "https://rdap.nic.tf/" - ] - ], - [ - [ - "tjmaxx" - ], - [ - "https://rdap.nic.tjmaxx/" - ] - ], - [ - [ - "tjx" - ], - [ - "https://rdap.nic.tjx/" - ] - ], - [ - [ - "tkmaxx" - ], - [ - "https://rdap.nic.tkmaxx/" - ] - ], - [ - [ - "total" - ], - [ - "https://rdap.nic.total/" - ] - ], - [ - [ - "trade" - ], - [ - "https://rdap.nic.trade/" - ] - ], - [ - [ - "tube" - ], - [ - "https://rdap.nic.tube/" - ] - ], - [ - [ - "tv" - ], - [ - "https://rdap.nic.tv/" - ] - ], - [ - [ - "versicherung" - ], - [ - "https://rdap.nic.versicherung/v1/" - ] - ], - [ - [ - "vi" - ], - [ - "https://rdap.nic.vi/" - ] - ], - [ - [ - "vip" - ], - [ - "https://rdap.nic.vip/" - ] - ], - [ - [ - "vivo" - ], - [ - "https://rdap.nic.vivo/" - ] - ], - [ - [ - "vlaanderen" - ], - [ - "https://rdap.nic.vlaanderen/" - ] - ], - [ - [ - "vodka" - ], - [ - "https://rdap.nic.vodka/" - ] - ], - [ - [ - "voting" - ], - [ - "https://rdap.nic.voting/" - ] - ], - [ - [ - "walter" - ], - [ - "https://rdap.nic.walter/" - ] - ], - [ - [ - "weather" - ], - [ - "https://rdap.nic.weather/" - ] - ], - [ - [ - "weatherchannel" - ], - [ - "https://rdap.nic.weatherchannel/" - ] - ], - [ - [ - "webcam" - ], - [ - "https://rdap.nic.webcam/" - ] - ], - [ - [ - "wedding" - ], - [ - "https://rdap.nic.wedding/" - ] - ], - [ - [ - "wf" - ], - [ - "https://rdap.nic.wf/" - ] - ], - [ - [ - "whoswho" - ], - [ - "https://rdap.nic.whoswho/" - ] - ], - [ - [ - "wiki" - ], - [ - "https://rdap.nic.wiki/" - ] - ], - [ - [ - "williamhill" - ], - [ - "https://rdap.nic.williamhill/" - ] - ], - [ - [ - "win" - ], - [ - "https://rdap.nic.win/" - ] - ], - [ - [ - "winners" - ], - [ - "https://rdap.nic.winners/" - ] - ], - [ - [ - "woodside" - ], - [ - "https://rdap.nic.woodside/" - ] - ], - [ - [ - "work" - ], - [ - "https://rdap.nic.work/" - ] - ], - [ - [ - "wtc" - ], - [ - "https://rdap.nic.wtc/" - ] - ], - [ - [ - "xerox" - ], - [ - "https://rdap.nic.xerox/" - ] - ], - [ - [ - "xn--1ck2e1b" - ], - [ - "https://rdap.nic.xn--1ck2e1b/" - ] - ], - [ - [ - "xn--80aqecdr1a" - ], - [ - "https://rdap.nic.xn--80aqecdr1a/" - ] - ], - [ - [ - "xn--80asehdb" - ], - [ - "https://rdap.nic.xn--80asehdb/" - ] - ], - [ - [ - "xn--80aswg" - ], - [ - "https://rdap.nic.xn--80aswg/" - ] - ], - [ - [ - "xn--bck1b9a5dre4c" - ], - [ - "https://rdap.nic.xn--bck1b9a5dre4c/" - ] - ], - [ - [ - "xn--cck2b3b" - ], - [ - "https://rdap.nic.xn--cck2b3b/" - ] - ], - [ - [ - "xn--eckvdtc9d" - ], - [ - "https://rdap.nic.xn--eckvdtc9d/" - ] - ], - [ - [ - "xn--fct429k" - ], - [ - "https://rdap.nic.xn--fct429k/" - ] - ], - [ - [ - "xn--g2xx48c" - ], - [ - "https://rdap.nic.xn--g2xx48c/" - ] - ], - [ - [ - "xn--gckr3f0f" - ], - [ - "https://rdap.nic.xn--gckr3f0f/" - ] - ], - [ - [ - "xn--gk3at1e" - ], - [ - "https://rdap.nic.xn--gk3at1e/" - ] - ], - [ - [ - "xn--jvr189m" - ], - [ - "https://rdap.nic.xn--jvr189m/" - ] - ], - [ - [ - "xn--kcrx77d1x4a" - ], - [ - "https://rdap.nic.xn--kcrx77d1x4a/" - ] - ], - [ - [ - "xn--mgba3a3ejt" - ], - [ - "https://rdap.nic.xn--mgba3a3ejt/" - ] - ], - [ - [ - "xn--mgba7c0bbn0a" - ], - [ - "https://rdap.nic.xn--mgba7c0bbn0a/" - ] - ], - [ - [ - "xn--mgbab2bd" - ], - [ - "https://rdap.nic.xn--mgbab2bd/" - ] - ], - [ - [ - "xn--mgbca7dzdo" - ], - [ - "https://rdap.nic.xn--mgbca7dzdo/" - ] - ], - [ - [ - "xn--mgbi4ecexp" - ], - [ - "https://rdap.nic.xn--mgbi4ecexp/" - ] - ], - [ - [ - "xn--ngbc5azd" - ], - [ - "https://rdap.nic.xn--ngbc5azd/" - ] - ], - [ - [ - "xn--ngbrx" - ], - [ - "https://rdap.nic.xn--ngbrx/" - ] - ], - [ - [ - "xn--rovu88b" - ], - [ - "https://rdap.nic.xn--rovu88b/" - ] - ], - [ - [ - "xn--tiq49xqyj" - ], - [ - "https://rdap.nic.xn--tiq49xqyj/" - ] - ], - [ - [ - "xxx" - ], - [ - "https://rdap.nic.xxx/" - ] - ], - [ - [ - "yandex" - ], - [ - "https://rdap.nic.yandex/" - ] - ], - [ - [ - "yoga" - ], - [ - "https://rdap.nic.yoga/" - ] - ], - [ - [ - "yt" - ], - [ - "https://rdap.nic.yt/" - ] - ], - [ - [ - "zero" - ], - [ - "https://rdap.nic.zero/" - ] - ], - [ - [ - "zm" - ], - [ - "https://rdap.nic.zm/" - ] - ], - [ - [ - "abbvie" - ], - [ - "https://rdap.nominet.uk/abbvie/" - ] - ], - [ - [ - "amazon" - ], - [ - "https://rdap.nominet.uk/amazon/" - ] - ], - [ - [ - "audible" - ], - [ - "https://rdap.nominet.uk/audible/" - ] - ], - [ - [ - "author" - ], - [ - "https://rdap.nominet.uk/author/" - ] - ], - [ - [ - "aws" - ], - [ - "https://rdap.nominet.uk/aws/" - ] - ], - [ - [ - "azure" - ], - [ - "https://rdap.nominet.uk/azure/" - ] - ], - [ - [ - "bbc" - ], - [ - "https://rdap.nominet.uk/bbc/" - ] - ], - [ - [ - "bbva" - ], - [ - "https://rdap.nominet.uk/bbva/" - ] - ], - [ - [ - "bentley" - ], - [ - "https://rdap.nominet.uk/bentley/" - ] - ], - [ - [ - "bing" - ], - [ - "https://rdap.nominet.uk/bing/" - ] - ], - [ - [ - "book" - ], - [ - "https://rdap.nominet.uk/book/" - ] - ], - [ - [ - "bot" - ], - [ - "https://rdap.nominet.uk/bot/" - ] - ], - [ - [ - "broadway" - ], - [ - "https://rdap.nominet.uk/broadway/" - ] - ], - [ - [ - "buy" - ], - [ - "https://rdap.nominet.uk/buy/" - ] - ], - [ - [ - "call" - ], - [ - "https://rdap.nominet.uk/call/" - ] - ], - [ - [ - "career" - ], - [ - "https://rdap.nominet.uk/career/" - ] - ], - [ - [ - "circle" - ], - [ - "https://rdap.nominet.uk/circle/" - ] - ], - [ - [ - "cymru" - ], - [ - "https://rdap.nominet.uk/cymru/" - ] - ], - [ - [ - "deal" - ], - [ - "https://rdap.nominet.uk/deal/" - ] - ], - [ - [ - "desi" - ], - [ - "https://rdap.nominet.uk/desi/" - ] - ], - [ - [ - "fairwinds" - ], - [ - "https://rdap.nominet.uk/fairwinds/" - ] - ], - [ - [ - "fast" - ], - [ - "https://rdap.nominet.uk/fast/" - ] - ], - [ - [ - "fire" - ], - [ - "https://rdap.nominet.uk/fire/" - ] - ], - [ - [ - "free" - ], - [ - "https://rdap.nominet.uk/free/" - ] - ], - [ - [ - "gop" - ], - [ - "https://rdap.nominet.uk/gop/" - ] - ], - [ - [ - "got" - ], - [ - "https://rdap.nominet.uk/got/" - ] - ], - [ - [ - "gucci" - ], - [ - "https://rdap.nominet.uk/gucci/" - ] - ], - [ - [ - "hot" - ], - [ - "https://rdap.nominet.uk/hot/" - ] - ], - [ - [ - "hotmail" - ], - [ - "https://rdap.nominet.uk/hotmail/" - ] - ], - [ - [ - "ieee" - ], - [ - "https://rdap.nominet.uk/ieee/" - ] - ], - [ - [ - "imdb" - ], - [ - "https://rdap.nominet.uk/imdb/" - ] - ], - [ - [ - "jobs" - ], - [ - "https://rdap.nominet.uk/jobs/" - ] - ], - [ - [ - "jot" - ], - [ - "https://rdap.nominet.uk/jot/" - ] - ], - [ - [ - "joy" - ], - [ - "https://rdap.nominet.uk/joy/" - ] - ], - [ - [ - "kindle" - ], - [ - "https://rdap.nominet.uk/kindle/" - ] - ], - [ - [ - "like" - ], - [ - "https://rdap.nominet.uk/like/" - ] - ], - [ - [ - "locus" - ], - [ - "https://rdap.nominet.uk/locus/" - ] - ], - [ - [ - "med" - ], - [ - "https://rdap.nominet.uk/med/" - ] - ], - [ - [ - "microsoft" - ], - [ - "https://rdap.nominet.uk/microsoft/" - ] - ], - [ - [ - "moi" - ], - [ - "https://rdap.nominet.uk/moi/" - ] - ], - [ - [ - "mtn" - ], - [ - "https://rdap.nominet.uk/mtn/" - ] - ], - [ - [ - "now" - ], - [ - "https://rdap.nominet.uk/now/" - ] - ], - [ - [ - "nowruz" - ], - [ - "https://rdap.nominet.uk/nowruz/" - ] - ], - [ - [ - "pay" - ], - [ - "https://rdap.nominet.uk/pay/" - ] - ], - [ - [ - "pharmacy" - ], - [ - "https://rdap.nominet.uk/pharmacy/" - ] - ], - [ - [ - "pin" - ], - [ - "https://rdap.nominet.uk/pin/" - ] - ], - [ - [ - "pioneer" - ], - [ - "https://rdap.nominet.uk/pioneer/" - ] - ], - [ - [ - "pn" - ], - [ - "https://rdap.nominet.uk/pn/" - ] - ], - [ - [ - "prime" - ], - [ - "https://rdap.nominet.uk/prime/" - ] - ], - [ - [ - "read" - ], - [ - "https://rdap.nominet.uk/read/" - ] - ], - [ - [ - "realestate" - ], - [ - "https://rdap.nominet.uk/realestate/" - ] - ], - [ - [ - "realtor" - ], - [ - "https://rdap.nominet.uk/realtor/" - ] - ], - [ - [ - "room" - ], - [ - "https://rdap.nominet.uk/room/" - ] - ], - [ - [ - "safe" - ], - [ - "https://rdap.nominet.uk/safe/" - ] - ], - [ - [ - "save" - ], - [ - "https://rdap.nominet.uk/save/" - ] - ], - [ - [ - "secure" - ], - [ - "https://rdap.nominet.uk/secure/" - ] - ], - [ - [ - "silk" - ], - [ - "https://rdap.nominet.uk/silk/" - ] - ], - [ - [ - "sky" - ], - [ - "https://rdap.nominet.uk/sky/" - ] - ], - [ - [ - "smile" - ], - [ - "https://rdap.nominet.uk/smile/" - ] - ], - [ - [ - "spot" - ], - [ - "https://rdap.nominet.uk/spot/" - ] - ], - [ - [ - "talk" - ], - [ - "https://rdap.nominet.uk/talk/" - ] - ], - [ - [ - "tunes" - ], - [ - "https://rdap.nominet.uk/tunes/" - ] - ], - [ - [ - "tushu" - ], - [ - "https://rdap.nominet.uk/tushu/" - ] - ], - [ - [ - "uk" - ], - [ - "https://rdap.nominet.uk/uk/" - ] - ], - [ - [ - "virgin" - ], - [ - "https://rdap.nominet.uk/virgin/" - ] - ], - [ - [ - "wales" - ], - [ - "https://rdap.nominet.uk/wales/" - ] - ], - [ - [ - "wanggou" - ], - [ - "https://rdap.nominet.uk/wanggou/" - ] - ], - [ - [ - "wed" - ], - [ - "https://rdap.nominet.uk/wed/" - ] - ], - [ - [ - "windows" - ], - [ - "https://rdap.nominet.uk/windows/" - ] - ], - [ - [ - "wow" - ], - [ - "https://rdap.nominet.uk/wow/" - ] - ], - [ - [ - "xbox" - ], - [ - "https://rdap.nominet.uk/xbox/" - ] - ], - [ - [ - "xn--cckwcxetd" - ], - [ - "https://rdap.nominet.uk/xn--cckwcxetd/" - ] - ], - [ - [ - "xn--jlq480n2rg" - ], - [ - "https://rdap.nominet.uk/xn--jlq480n2rg/" - ] - ], - [ - [ - "yamaxun" - ], - [ - "https://rdap.nominet.uk/yamaxun/" - ] - ], - [ - [ - "you" - ], - [ - "https://rdap.nominet.uk/you/" - ] - ], - [ - [ - "zappos" - ], - [ - "https://rdap.nominet.uk/zappos/" - ] - ], - [ - [ - "no" - ], - [ - "https://rdap.norid.no/" - ] - ], - [ - [ - "id" - ], - [ - "https://rdap.pandi.id/rdap/" - ] - ], - [ - [ - "charity", - "foundation", - "gives", - "giving", - "ngo", - "ong", - "org", - "xn--c1avg", - "xn--i1b6b1a6a2e", - "xn--nqv7f", - "xn--nqv7fs00ema" - ], - [ - "https://rdap.publicinterestregistry.org/rdap/" - ] - ], - [ - [ - "si" - ], - [ - "https://rdap.register.si/" - ] - ], - [ - [ - "br" - ], - [ - "https://rdap.registro.br/" - ] - ], - [ - [ - "bar", - "rest" - ], - [ - "https://rdap.registry.bar/rdap/" - ] - ], - [ - [ - "observer", - "realty" - ], - [ - "https://rdap.registry.click/rdap/" - ] - ], - [ - [ - "cloud" - ], - [ - "https://rdap.registry.cloud/rdap/" - ] - ], - [ - [ - "coop", - "creditunion" - ], - [ - "https://rdap.registry.coop/rdap/" - ] - ], - [ - [ - "ec" - ], - [ - "https://rdap.registry.ec/" - ] - ], - [ - [ - "hiphop" - ], - [ - "https://rdap.registry.hiphop/rdap/" - ] - ], - [ - [ - "love" - ], - [ - "https://rdap.registry.love/rdap/" - ] - ], - [ - [ - "cologne", - "koeln", - "tirol", - "wien" - ], - [ - "https://rdap.ryce-rsp.com/rdap/" - ] - ], - [ - [ - "nl" - ], - [ - "https://rdap.sidn.nl/" - ] - ], - [ - [ - "anquan", - "shouji", - "xihuan", - "xn--vuq861b", - "yun" - ], - [ - "https://rdap.teleinfo.cn/" - ] - ], - [ - [ - "xn--3ds443g" - ], - [ - "https://rdap.teleinfo.cn/xn--3ds443g/" - ] - ], - [ - [ - "xn--fiq228c5hs" - ], - [ - "https://rdap.teleinfo.cn/xn--fiq228c5hs/" - ] - ], - [ - [ - "xn--kput3i" - ], - [ - "https://rdap.teleinfo.cn/xn--kput3i/" - ] - ], - [ - [ - "xn--nyqy26a" - ], - [ - "https://rdap.teleinfo.cn/xn--nyqy26a/" - ] - ], - [ - [ - "xn--rhqv96g" - ], - [ - "https://rdap.teleinfo.cn/xn--rhqv96g/" - ] - ], - [ - [ - "xn--mxtq1m" - ], - [ - "https://rdap.twnic.tw/rdap/" - ] - ], - [ - [ - "com" - ], - [ - "https://rdap.verisign.com/com/v1/" - ] - ], - [ - [ - "net" - ], - [ - "https://rdap.verisign.com/net/v1/" - ] - ], - [ - [ - "ai" - ], - [ - "https://rdap.whois.ai/" - ] - ], - [ - [ - "xn--45q11c" - ], - [ - "https://rdap.zdnsgtld.com/XN--45Q11C/" - ] - ], - [ - [ - "xn--efvy88h" - ], - [ - "https://rdap.zdnsgtld.com/XN--EFVY88H/" - ] - ], - [ - [ - "baidu" - ], - [ - "https://rdap.zdnsgtld.com/baidu/" - ] - ], - [ - [ - "citic" - ], - [ - "https://rdap.zdnsgtld.com/citic/" - ] - ], - [ - [ - "icbc" - ], - [ - "https://rdap.zdnsgtld.com/icbc/" - ] - ], - [ - [ - "redstone" - ], - [ - "https://rdap.zdnsgtld.com/redstone/" - ] - ], - [ - [ - "ren" - ], - [ - "https://rdap.zdnsgtld.com/ren/" - ] - ], - [ - [ - "sohu" - ], - [ - "https://rdap.zdnsgtld.com/sohu/" - ] - ], - [ - [ - "top" - ], - [ - "https://rdap.zdnsgtld.com/top/" - ] - ], - [ - [ - "unicom" - ], - [ - "https://rdap.zdnsgtld.com/unicom/" - ] - ], - [ - [ - "wang" - ], - [ - "https://rdap.zdnsgtld.com/wang/" - ] - ], - [ - [ - "xn--30rr7y" - ], - [ - "https://rdap.zdnsgtld.com/xn--30rr7y/" - ] - ], - [ - [ - "xn--3bst00m" - ], - [ - "https://rdap.zdnsgtld.com/xn--3bst00m/" - ] - ], - [ - [ - "xn--6qq986b3xl" - ], - [ - "https://rdap.zdnsgtld.com/xn--6qq986b3xl/" - ] - ], - [ - [ - "xn--8y0a063a" - ], - [ - "https://rdap.zdnsgtld.com/xn--8y0a063a/" - ] - ], - [ - [ - "xn--9et52u" - ], - [ - "https://rdap.zdnsgtld.com/xn--9et52u/" - ] - ], - [ - [ - "xn--czr694b" - ], - [ - "https://rdap.zdnsgtld.com/xn--czr694b/" - ] - ], - [ - [ - "xn--czru2d" - ], - [ - "https://rdap.zdnsgtld.com/xn--czru2d/" - ] - ], - [ - [ - "xn--fiq64b" - ], - [ - "https://rdap.zdnsgtld.com/xn--fiq64b/" - ] - ], - [ - [ - "xn--hxt814e" - ], - [ - "https://rdap.zdnsgtld.com/xn--hxt814e/" - ] - ], - [ - [ - "xn--imr513n" - ], - [ - "https://rdap.zdnsgtld.com/xn--imr513n/" - ] - ], - [ - [ - "xn--otu796d" - ], - [ - "https://rdap.zdnsgtld.com/xn--otu796d/" - ] - ], - [ - [ - "xn--ses554g" - ], - [ - "https://rdap.zdnsgtld.com/xn--ses554g/" - ] - ], - [ - [ - "xn--1qqw23a", - "xn--55qx5d", - "xn--io0a7i", - "xn--xhq521b" - ], - [ - "https://restwhois.ngtld.cn/" - ] - ], - [ - [ - "aarp" - ], - [ - "https://tld-rdap.verisign.com/aarp/v1/" - ] - ], - [ - [ - "abc" - ], - [ - "https://tld-rdap.verisign.com/abc/v1/" - ] - ], - [ - [ - "airbus" - ], - [ - "https://tld-rdap.verisign.com/airbus/v1/" - ] - ], - [ - [ - "airtel" - ], - [ - "https://tld-rdap.verisign.com/airtel/v1/" - ] - ], - [ - [ - "americanfamily" - ], - [ - "https://tld-rdap.verisign.com/americanfamily/v1/" - ] - ], - [ - [ - "amfam" - ], - [ - "https://tld-rdap.verisign.com/amfam/v1/" - ] - ], - [ - [ - "bharti" - ], - [ - "https://tld-rdap.verisign.com/bharti/v1/" - ] - ], - [ - [ - "capitalone" - ], - [ - "https://tld-rdap.verisign.com/capitalone/v1/" - ] - ], - [ - [ - "cc" - ], - [ - "https://tld-rdap.verisign.com/cc/v1/" - ] - ], - [ - [ - "comsec" - ], - [ - "https://tld-rdap.verisign.com/comsec/v1/" - ] - ], - [ - [ - "diy" - ], - [ - "https://tld-rdap.verisign.com/diy/v1/" - ] - ], - [ - [ - "food" - ], - [ - "https://tld-rdap.verisign.com/food/v1/" - ] - ], - [ - [ - "lego" - ], - [ - "https://tld-rdap.verisign.com/lego/v1/" - ] - ], - [ - [ - "lifestyle" - ], - [ - "https://tld-rdap.verisign.com/lifestyle/v1/" - ] - ], - [ - [ - "living" - ], - [ - "https://tld-rdap.verisign.com/living/v1/" - ] - ], - [ - [ - "name" - ], - [ - "https://tld-rdap.verisign.com/name/v1/" - ] - ], - [ - [ - "nissay" - ], - [ - "https://tld-rdap.verisign.com/nissay/v1/" - ] - ], - [ - [ - "norton" - ], - [ - "https://tld-rdap.verisign.com/norton/v1/" - ] - ], - [ - [ - "omega" - ], - [ - "https://tld-rdap.verisign.com/omega/v1/" - ] - ], - [ - [ - "rwe" - ], - [ - "https://tld-rdap.verisign.com/rwe/v1/" - ] - ], - [ - [ - "sener" - ], - [ - "https://tld-rdap.verisign.com/sener/v1/" - ] - ], - [ - [ - "shell" - ], - [ - "https://tld-rdap.verisign.com/shell/v1/" - ] - ], - [ - [ - "swatch" - ], - [ - "https://tld-rdap.verisign.com/swatch/v1/" - ] - ], - [ - [ - "vana" - ], - [ - "https://tld-rdap.verisign.com/vana/v1/" - ] - ], - [ - [ - "verisign" - ], - [ - "https://tld-rdap.verisign.com/verisign/v1/" - ] - ], - [ - [ - "visa" - ], - [ - "https://tld-rdap.verisign.com/visa/v1/" - ] - ], - [ - [ - "weber" - ], - [ - "https://tld-rdap.verisign.com/weber/v1/" - ] - ], - [ - [ - "xn--11b4c3d" - ], - [ - "https://tld-rdap.verisign.com/xn--11b4c3d/v1/" - ] - ], - [ - [ - "xn--3pxu8k" - ], - [ - "https://tld-rdap.verisign.com/xn--3pxu8k/v1/" - ] - ], - [ - [ - "xn--42c2d9a" - ], - [ - "https://tld-rdap.verisign.com/xn--42c2d9a/v1/" - ] - ], - [ - [ - "xn--5su34j936bgsg" - ], - [ - "https://tld-rdap.verisign.com/xn--5su34j936bgsg/v1/" - ] - ], - [ - [ - "xn--9dbq2a" - ], - [ - "https://tld-rdap.verisign.com/xn--9dbq2a/v1/" - ] - ], - [ - [ - "xn--c2br7g" - ], - [ - "https://tld-rdap.verisign.com/xn--c2br7g/v1/" - ] - ], - [ - [ - "xn--fhbei" - ], - [ - "https://tld-rdap.verisign.com/xn--fhbei/v1/" - ] - ], - [ - [ - "xn--j1aef" - ], - [ - "https://tld-rdap.verisign.com/xn--j1aef/v1/" - ] - ], - [ - [ - "xn--mk1bu44c" - ], - [ - "https://tld-rdap.verisign.com/xn--mk1bu44c/v1/" - ] - ], - [ - [ - "xn--pssy2u" - ], - [ - "https://tld-rdap.verisign.com/xn--pssy2u/v1/" - ] - ], - [ - [ - "xn--t60b56a" - ], - [ - "https://tld-rdap.verisign.com/xn--t60b56a/v1/" - ] - ], - [ - [ - "xn--tckwe" - ], - [ - "https://tld-rdap.verisign.com/xn--tckwe/v1/" - ] - ], - [ - [ - "xn--w4r85el8fhu5dnra" - ], - [ - "https://tld-rdap.verisign.com/xn--w4r85el8fhu5dnra/v1/" - ] - ], - [ - [ - "xn--w4rs40l" - ], - [ - "https://tld-rdap.verisign.com/xn--w4rs40l/v1/" - ] - ], - [ - [ - "yahoo" - ], - [ - "https://tld-rdap.verisign.com/yahoo/v1/" - ] - ], - [ - [ - "ky" - ], - [ - "https://whois.kyregistry.ky/rdap/" - ] - ], - [ - [ - "mtr" - ], - [ - "https://whois.nic.mtr/rdap/" - ] - ], - [ - [ - "tatar" - ], - [ - "https://whois.nic.tatar/rdap/" - ] - ], - [ - [ - "xn--d1acj3b" - ], - [ - "https://whois.nic.xn--d1acj3b/rdap/" - ] - ], - [ - [ - "tz" - ], - [ - "https://whois.tznic.or.tz/rdap/" - ] - ], - [ - [ - "click", - "country", - "gift", - "hiv", - "juegos", - "link", - "property", - "sexy", - "trust" - ], - [ - "https://whois.uniregistry.net/rdap/" - ] - ], - [ - [ - "ads", - "android", - "app", - "boo", - "cal", - "channel", - "chrome", - "dad", - "day", - "dclk", - "dev", - "docs", - "drive", - "eat", - "esq", - "fly", - "foo", - "gbiz", - "gle", - "gmail", - "goog", - "google", - "guge", - "hangout", - "here", - "how", - "ing", - "map", - "meet", - "meme", - "mov", - "new", - "nexus", - "page", - "phd", - "play", - "prod", - "prof", - "rsvp", - "search", - "soy", - "xn--flw351e", - "xn--q9jyb4c", - "xn--qcka1pmc", - "youtube", - "zip" - ], - [ - "https://www.registry.google/rdap/" - ] - ] - ], - "version": "1.0" -} diff --git a/src/Entity/RdapServer.php b/src/Entity/RdapServer.php new file mode 100644 index 0000000..158d507 --- /dev/null +++ b/src/Entity/RdapServer.php @@ -0,0 +1,71 @@ +updatedAt = new DateTimeImmutable('now'); + } + + public function getTld(): ?string + { + return $this->tld; + } + + public function setTld(string $tld): static + { + $this->tld = $tld; + + return $this; + } + + public function getUrl(): ?string + { + return $this->url; + } + + public function setUrl(string $url): static + { + $this->url = $url; + + return $this; + } + + public function getUpdatedAt(): ?DateTimeImmutable + { + return $this->updatedAt; + } + + public function setUpdatedAt(DateTimeImmutable $updatedAt): static + { + $this->updatedAt = $updatedAt; + + return $this; + } + + #[ORM\PrePersist] + #[ORM\PreUpdate] + public function updateTimestamps(): void + { + $this->setUpdatedAt(new DateTimeImmutable('now')); + } +} diff --git a/src/Repository/RdapServerRepository.php b/src/Repository/RdapServerRepository.php new file mode 100644 index 0000000..80086d3 --- /dev/null +++ b/src/Repository/RdapServerRepository.php @@ -0,0 +1,43 @@ + + */ +class RdapServerRepository extends ServiceEntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, RdapServer::class); + } + +// /** +// * @return RdapServer[] Returns an array of RdapServer objects +// */ +// public function findByExampleField($value): array +// { +// return $this->createQueryBuilder('r') +// ->andWhere('r.exampleField = :val') +// ->setParameter('val', $value) +// ->orderBy('r.id', 'ASC') +// ->setMaxResults(10) +// ->getQuery() +// ->getResult() +// ; +// } + +// public function findOneBySomeField($value): ?RdapServer +// { +// return $this->createQueryBuilder('r') +// ->andWhere('r.exampleField = :val') +// ->setParameter('val', $value) +// ->getQuery() +// ->getOneOrNullResult() +// ; +// } +} diff --git a/src/Service/RDAPService.php b/src/Service/RDAPService.php index bbcf9d9..51cd4c2 100644 --- a/src/Service/RDAPService.php +++ b/src/Service/RDAPService.php @@ -12,6 +12,7 @@ use App\Entity\Entity; use App\Entity\EntityEvent; use App\Entity\Nameserver; use App\Entity\NameserverEntity; +use App\Entity\RdapServer; use App\Repository\DomainEntityRepository; use App\Repository\DomainEventRepository; use App\Repository\DomainRepository; @@ -19,10 +20,10 @@ use App\Repository\EntityEventRepository; use App\Repository\EntityRepository; use App\Repository\NameserverEntityRepository; use App\Repository\NameserverRepository; +use App\Repository\RdapServerRepository; use DateTimeImmutable; use Doctrine\ORM\EntityManagerInterface; use Exception; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; use Throwable; @@ -37,8 +38,8 @@ readonly class RDAPService private NameserverEntityRepository $nameserverEntityRepository, private EntityEventRepository $entityEventRepository, private DomainEntityRepository $domainEntityRepository, - private EntityManagerInterface $em, - private ParameterBagInterface $params + private RdapServerRepository $rdapServerRepository, + private EntityManagerInterface $em ) { @@ -49,27 +50,26 @@ readonly class RDAPService */ public function registerDomains(array $domains): void { - $dnsRoot = json_decode(file_get_contents($this->params->get('kernel.project_dir') . '/src/Config/dns.json'))->services; foreach ($domains as $fqdn) { - $this->registerDomain($dnsRoot, $fqdn); + $this->registerDomain($fqdn); } } /** * @throws Exception */ - private function registerDomain(array $dnsRoot, string $fqdn): void + private function registerDomain(string $fqdn): void { $idnDomain = idn_to_ascii($fqdn); - try { - $rdapServer = $this->getRDAPServer($dnsRoot, RDAPService::getTld($idnDomain)); - } catch (Exception) { - throw new Exception("Unable to determine which RDAP server to contact"); - } + + /** @var RdapServer|null $rdapServer */ + $rdapServer = $this->rdapServerRepository->findOneBy(["tld" => RDAPService::getTld($idnDomain)]); + + if ($rdapServer === null) throw new Exception("Unable to determine which RDAP server to contact"); try { $res = $this->client->request( - 'GET', $rdapServer . 'domain/' . $idnDomain + 'GET', $rdapServer->getUrl() . 'domain/' . $idnDomain )->toArray(); } catch (Throwable) { throw new Exception("Unable to contact RDAP server"); @@ -170,18 +170,6 @@ readonly class RDAPService } - /** - * @throws Exception - */ - private function getRDAPServer(array $dnsRoot, string $tld) - { - - foreach ($dnsRoot as $dns) { - if (in_array($tld, $dns[0])) return $dns[1][0]; - } - throw new Exception("This TLD ($tld) is not supported"); - } - /** * @throws Exception */ @@ -240,4 +228,27 @@ readonly class RDAPService } return $entity; } + + public function updateRDAPServers(): void + { + $dnsRoot = $this->client->request( + 'GET', 'https://data.iana.org/rdap/dns.json' + )->toArray(); + + foreach ($dnsRoot['services'] as $service) { + + foreach ($service[0] as $tld) { + foreach ($service[1] as $rdapServerUrl) { + $server = $this->rdapServerRepository->findOneBy(["tld" => $tld, "url" => $rdapServerUrl]); + if ($server === null) $server = new RdapServer(); + + $server->setTld($tld)->setUrl($rdapServerUrl)->updateTimestamps(); + + $this->em->persist($server); + } + } + + } + $this->em->flush(); + } } \ No newline at end of file