whois 3.6.5 → 4.0.0.pre.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (274) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/CONTRIBUTING.md +0 -2
  4. data/README.md +8 -3
  5. data/bin/whoisrb +5 -5
  6. data/data/tld.json +437 -216
  7. data/lib/whois.rb +1 -75
  8. data/lib/whois/errors.rb +0 -44
  9. data/lib/whois/record.rb +0 -237
  10. data/lib/whois/record/part.rb +20 -4
  11. data/lib/whois/server/adapters/base.rb +18 -3
  12. data/lib/whois/version.rb +1 -13
  13. data/whois.gemspec +9 -16
  14. metadata +7 -295
  15. data/lib/whois/record/contact.rb +0 -65
  16. data/lib/whois/record/nameserver.rb +0 -48
  17. data/lib/whois/record/parser.rb +0 -398
  18. data/lib/whois/record/parser/base.rb +0 -399
  19. data/lib/whois/record/parser/base_afilias.rb +0 -141
  20. data/lib/whois/record/parser/base_afilias2.rb +0 -138
  21. data/lib/whois/record/parser/base_cocca.rb +0 -99
  22. data/lib/whois/record/parser/base_cocca2.rb +0 -100
  23. data/lib/whois/record/parser/base_icann_compliant.rb +0 -159
  24. data/lib/whois/record/parser/base_icb.rb +0 -94
  25. data/lib/whois/record/parser/base_iisse.rb +0 -113
  26. data/lib/whois/record/parser/base_shared1.rb +0 -110
  27. data/lib/whois/record/parser/base_shared2.rb +0 -129
  28. data/lib/whois/record/parser/base_shared3.rb +0 -129
  29. data/lib/whois/record/parser/base_verisign.rb +0 -108
  30. data/lib/whois/record/parser/base_whoisd.rb +0 -147
  31. data/lib/whois/record/parser/blank.rb +0 -37
  32. data/lib/whois/record/parser/capetown-whois.registry.net.za.rb +0 -27
  33. data/lib/whois/record/parser/ccwhois.ksregistry.net.rb +0 -28
  34. data/lib/whois/record/parser/ccwhois.verisign-grs.com.rb +0 -27
  35. data/lib/whois/record/parser/durban-whois.registry.net.za.rb +0 -27
  36. data/lib/whois/record/parser/example.rb +0 -166
  37. data/lib/whois/record/parser/jobswhois.verisign-grs.com.rb +0 -27
  38. data/lib/whois/record/parser/joburg-whois.registry.net.za.rb +0 -27
  39. data/lib/whois/record/parser/kero.yachay.pe.rb +0 -88
  40. data/lib/whois/record/parser/org-whois.registry.net.za.rb +0 -27
  41. data/lib/whois/record/parser/whois.1und1.info.rb +0 -30
  42. data/lib/whois/record/parser/whois.35.com.rb +0 -26
  43. data/lib/whois/record/parser/whois.aeda.net.ae.rb +0 -66
  44. data/lib/whois/record/parser/whois.aero.rb +0 -59
  45. data/lib/whois/record/parser/whois.afilias-grs.info.rb +0 -23
  46. data/lib/whois/record/parser/whois.afilias.net.rb +0 -28
  47. data/lib/whois/record/parser/whois.ai.rb +0 -64
  48. data/lib/whois/record/parser/whois.amnic.net.rb +0 -81
  49. data/lib/whois/record/parser/whois.ascio.com.rb +0 -31
  50. data/lib/whois/record/parser/whois.ati.tn.rb +0 -118
  51. data/lib/whois/record/parser/whois.audns.net.au.rb +0 -121
  52. data/lib/whois/record/parser/whois.ax.rb +0 -66
  53. data/lib/whois/record/parser/whois.biz.rb +0 -27
  54. data/lib/whois/record/parser/whois.bnnic.bn.rb +0 -77
  55. data/lib/whois/record/parser/whois.cat.rb +0 -79
  56. data/lib/whois/record/parser/whois.cctld.by.rb +0 -96
  57. data/lib/whois/record/parser/whois.cctld.uz.rb +0 -83
  58. data/lib/whois/record/parser/whois.centralnic.com.rb +0 -142
  59. data/lib/whois/record/parser/whois.cira.ca.rb +0 -194
  60. data/lib/whois/record/parser/whois.cmc.iq.rb +0 -27
  61. data/lib/whois/record/parser/whois.cnnic.cn.rb +0 -110
  62. data/lib/whois/record/parser/whois.co.ca.rb +0 -78
  63. data/lib/whois/record/parser/whois.co.pl.rb +0 -84
  64. data/lib/whois/record/parser/whois.co.ug.rb +0 -84
  65. data/lib/whois/record/parser/whois.comlaude.com.rb +0 -115
  66. data/lib/whois/record/parser/whois.corporatedomains.com.rb +0 -30
  67. data/lib/whois/record/parser/whois.denic.de.rb +0 -166
  68. data/lib/whois/record/parser/whois.dk-hostmaster.dk.rb +0 -82
  69. data/lib/whois/record/parser/whois.dns.be.rb +0 -122
  70. data/lib/whois/record/parser/whois.dns.hr.rb +0 -99
  71. data/lib/whois/record/parser/whois.dns.lu.rb +0 -128
  72. data/lib/whois/record/parser/whois.dns.pl.rb +0 -153
  73. data/lib/whois/record/parser/whois.dns.pt.rb +0 -79
  74. data/lib/whois/record/parser/whois.domain-registry.nl.rb +0 -125
  75. data/lib/whois/record/parser/whois.domain.kg.rb +0 -78
  76. data/lib/whois/record/parser/whois.domainregistry.ie.rb +0 -123
  77. data/lib/whois/record/parser/whois.domreg.lt.rb +0 -70
  78. data/lib/whois/record/parser/whois.donuts.co.rb +0 -64
  79. data/lib/whois/record/parser/whois.dot.cf.rb +0 -73
  80. data/lib/whois/record/parser/whois.dot.tk.rb +0 -72
  81. data/lib/whois/record/parser/whois.dotgov.gov.rb +0 -63
  82. data/lib/whois/record/parser/whois.dotmobiregistry.net.rb +0 -23
  83. data/lib/whois/record/parser/whois.dotpostregistry.net.rb +0 -27
  84. data/lib/whois/record/parser/whois.dotproregistry.net.rb +0 -41
  85. data/lib/whois/record/parser/whois.dreamhost.com.rb +0 -25
  86. data/lib/whois/record/parser/whois.educause.edu.rb +0 -202
  87. data/lib/whois/record/parser/whois.eenet.ee.rb +0 -74
  88. data/lib/whois/record/parser/whois.enom.com.rb +0 -36
  89. data/lib/whois/record/parser/whois.eu.org.rb +0 -60
  90. data/lib/whois/record/parser/whois.eu.rb +0 -132
  91. data/lib/whois/record/parser/whois.fi.rb +0 -119
  92. data/lib/whois/record/parser/whois.gandi.net.rb +0 -32
  93. data/lib/whois/record/parser/whois.gg.rb +0 -33
  94. data/lib/whois/record/parser/whois.godaddy.com.rb +0 -113
  95. data/lib/whois/record/parser/whois.gov.za.rb +0 -64
  96. data/lib/whois/record/parser/whois.hkirc.hk.rb +0 -73
  97. data/lib/whois/record/parser/whois.iana.org.rb +0 -104
  98. data/lib/whois/record/parser/whois.iis.nu.rb +0 -28
  99. data/lib/whois/record/parser/whois.iis.se.rb +0 -28
  100. data/lib/whois/record/parser/whois.in.ua.rb +0 -77
  101. data/lib/whois/record/parser/whois.inregistry.net.rb +0 -29
  102. data/lib/whois/record/parser/whois.isnic.is.rb +0 -72
  103. data/lib/whois/record/parser/whois.isoc.org.il.rb +0 -77
  104. data/lib/whois/record/parser/whois.ja.net.rb +0 -77
  105. data/lib/whois/record/parser/whois.je.rb +0 -27
  106. data/lib/whois/record/parser/whois.jprs.jp.rb +0 -105
  107. data/lib/whois/record/parser/whois.kenic.or.ke.rb +0 -93
  108. data/lib/whois/record/parser/whois.kr.rb +0 -81
  109. data/lib/whois/record/parser/whois.markmonitor.com.rb +0 -38
  110. data/lib/whois/record/parser/whois.monic.mo.rb +0 -85
  111. data/lib/whois/record/parser/whois.museum.rb +0 -81
  112. data/lib/whois/record/parser/whois.mynic.my.rb +0 -74
  113. data/lib/whois/record/parser/whois.na-nic.com.na.rb +0 -23
  114. data/lib/whois/record/parser/whois.nc.rb +0 -124
  115. data/lib/whois/record/parser/whois.netcom.cm.rb +0 -28
  116. data/lib/whois/record/parser/whois.networksolutions.com.rb +0 -39
  117. data/lib/whois/record/parser/whois.nic.ac.rb +0 -27
  118. data/lib/whois/record/parser/whois.nic.af.rb +0 -27
  119. data/lib/whois/record/parser/whois.nic.ag.rb +0 -23
  120. data/lib/whois/record/parser/whois.nic.as.rb +0 -65
  121. data/lib/whois/record/parser/whois.nic.asia.rb +0 -109
  122. data/lib/whois/record/parser/whois.nic.at.rb +0 -66
  123. data/lib/whois/record/parser/whois.nic.bj.rb +0 -128
  124. data/lib/whois/record/parser/whois.nic.bo.rb +0 -75
  125. data/lib/whois/record/parser/whois.nic.cd.rb +0 -36
  126. data/lib/whois/record/parser/whois.nic.ch.rb +0 -111
  127. data/lib/whois/record/parser/whois.nic.ci.rb +0 -72
  128. data/lib/whois/record/parser/whois.nic.cl.rb +0 -73
  129. data/lib/whois/record/parser/whois.nic.co.rb +0 -27
  130. data/lib/whois/record/parser/whois.nic.college.rb +0 -27
  131. data/lib/whois/record/parser/whois.nic.coop.rb +0 -72
  132. data/lib/whois/record/parser/whois.nic.cx.rb +0 -27
  133. data/lib/whois/record/parser/whois.nic.cz.rb +0 -44
  134. data/lib/whois/record/parser/whois.nic.design.rb +0 -27
  135. data/lib/whois/record/parser/whois.nic.dm.rb +0 -27
  136. data/lib/whois/record/parser/whois.nic.dz.rb +0 -60
  137. data/lib/whois/record/parser/whois.nic.ec.rb +0 -36
  138. data/lib/whois/record/parser/whois.nic.es.rb +0 -107
  139. data/lib/whois/record/parser/whois.nic.fo.rb +0 -45
  140. data/lib/whois/record/parser/whois.nic.fr.rb +0 -176
  141. data/lib/whois/record/parser/whois.nic.gd.rb +0 -33
  142. data/lib/whois/record/parser/whois.nic.gl.rb +0 -27
  143. data/lib/whois/record/parser/whois.nic.gs.rb +0 -33
  144. data/lib/whois/record/parser/whois.nic.hn.rb +0 -27
  145. data/lib/whois/record/parser/whois.nic.ht.rb +0 -27
  146. data/lib/whois/record/parser/whois.nic.hu.rb +0 -80
  147. data/lib/whois/record/parser/whois.nic.im.rb +0 -68
  148. data/lib/whois/record/parser/whois.nic.io.rb +0 -50
  149. data/lib/whois/record/parser/whois.nic.ir.rb +0 -68
  150. data/lib/whois/record/parser/whois.nic.it.rb +0 -161
  151. data/lib/whois/record/parser/whois.nic.ki.rb +0 -27
  152. data/lib/whois/record/parser/whois.nic.kz.rb +0 -69
  153. data/lib/whois/record/parser/whois.nic.la.rb +0 -27
  154. data/lib/whois/record/parser/whois.nic.li.rb +0 -66
  155. data/lib/whois/record/parser/whois.nic.lk.rb +0 -111
  156. data/lib/whois/record/parser/whois.nic.lv.rb +0 -69
  157. data/lib/whois/record/parser/whois.nic.ly.rb +0 -78
  158. data/lib/whois/record/parser/whois.nic.md.rb +0 -96
  159. data/lib/whois/record/parser/whois.nic.me.rb +0 -87
  160. data/lib/whois/record/parser/whois.nic.mg.rb +0 -33
  161. data/lib/whois/record/parser/whois.nic.ms.rb +0 -27
  162. data/lib/whois/record/parser/whois.nic.mu.rb +0 -27
  163. data/lib/whois/record/parser/whois.nic.mx.rb +0 -81
  164. data/lib/whois/record/parser/whois.nic.name.rb +0 -70
  165. data/lib/whois/record/parser/whois.nic.net.ng.rb +0 -29
  166. data/lib/whois/record/parser/whois.nic.net.sa.rb +0 -72
  167. data/lib/whois/record/parser/whois.nic.net.sb.rb +0 -33
  168. data/lib/whois/record/parser/whois.nic.nf.rb +0 -27
  169. data/lib/whois/record/parser/whois.nic.org.uy.rb +0 -77
  170. data/lib/whois/record/parser/whois.nic.pr.rb +0 -86
  171. data/lib/whois/record/parser/whois.nic.priv.at.rb +0 -64
  172. data/lib/whois/record/parser/whois.nic.pw.rb +0 -27
  173. data/lib/whois/record/parser/whois.nic.sh.rb +0 -27
  174. data/lib/whois/record/parser/whois.nic.sl.rb +0 -78
  175. data/lib/whois/record/parser/whois.nic.sm.rb +0 -78
  176. data/lib/whois/record/parser/whois.nic.sn.rb +0 -115
  177. data/lib/whois/record/parser/whois.nic.so.rb +0 -72
  178. data/lib/whois/record/parser/whois.nic.space.rb +0 -27
  179. data/lib/whois/record/parser/whois.nic.st.rb +0 -74
  180. data/lib/whois/record/parser/whois.nic.tc.rb +0 -27
  181. data/lib/whois/record/parser/whois.nic.tech.rb +0 -27
  182. data/lib/whois/record/parser/whois.nic.tel.rb +0 -27
  183. data/lib/whois/record/parser/whois.nic.tl.rb +0 -27
  184. data/lib/whois/record/parser/whois.nic.tm.rb +0 -33
  185. data/lib/whois/record/parser/whois.nic.tr.rb +0 -161
  186. data/lib/whois/record/parser/whois.nic.travel.rb +0 -27
  187. data/lib/whois/record/parser/whois.nic.tv.rb +0 -27
  188. data/lib/whois/record/parser/whois.nic.uk.rb +0 -179
  189. data/lib/whois/record/parser/whois.nic.us.rb +0 -27
  190. data/lib/whois/record/parser/whois.nic.ve.rb +0 -89
  191. data/lib/whois/record/parser/whois.nic.xxx.rb +0 -44
  192. data/lib/whois/record/parser/whois.nic.xyz.rb +0 -22
  193. data/lib/whois/record/parser/whois.norid.no.rb +0 -63
  194. data/lib/whois/record/parser/whois.pairnic.com.rb +0 -30
  195. data/lib/whois/record/parser/whois.pandi.or.id.rb +0 -27
  196. data/lib/whois/record/parser/whois.pir.org.rb +0 -92
  197. data/lib/whois/record/parser/whois.pnina.ps.rb +0 -33
  198. data/lib/whois/record/parser/whois.register.bg.rb +0 -85
  199. data/lib/whois/record/parser/whois.register.com.rb +0 -32
  200. data/lib/whois/record/parser/whois.register.si.rb +0 -75
  201. data/lib/whois/record/parser/whois.registre.ma.rb +0 -65
  202. data/lib/whois/record/parser/whois.registro.br.rb +0 -75
  203. data/lib/whois/record/parser/whois.registry.gy.rb +0 -27
  204. data/lib/whois/record/parser/whois.registry.hm.rb +0 -74
  205. data/lib/whois/record/parser/whois.registry.net.za.rb +0 -145
  206. data/lib/whois/record/parser/whois.registry.om.rb +0 -42
  207. data/lib/whois/record/parser/whois.registry.qa.rb +0 -27
  208. data/lib/whois/record/parser/whois.ripe.net.rb +0 -70
  209. data/lib/whois/record/parser/whois.rnids.rs.rb +0 -136
  210. data/lib/whois/record/parser/whois.rotld.ro.rb +0 -67
  211. data/lib/whois/record/parser/whois.rrpproxy.net.rb +0 -34
  212. data/lib/whois/record/parser/whois.safenames.net.rb +0 -50
  213. data/lib/whois/record/parser/whois.schlund.info.rb +0 -36
  214. data/lib/whois/record/parser/whois.sgnic.sg.rb +0 -89
  215. data/lib/whois/record/parser/whois.sk-nic.sk.rb +0 -103
  216. data/lib/whois/record/parser/whois.smallregistry.net.rb +0 -133
  217. data/lib/whois/record/parser/whois.srs.net.nz.rb +0 -161
  218. data/lib/whois/record/parser/whois.sx.rb +0 -134
  219. data/lib/whois/record/parser/whois.tcinet.ru.rb +0 -116
  220. data/lib/whois/record/parser/whois.thnic.co.th.rb +0 -81
  221. data/lib/whois/record/parser/whois.tld.ee.rb +0 -136
  222. data/lib/whois/record/parser/whois.tld.sy.rb +0 -36
  223. data/lib/whois/record/parser/whois.tonic.to.rb +0 -88
  224. data/lib/whois/record/parser/whois.tucows.com.rb +0 -30
  225. data/lib/whois/record/parser/whois.twnic.net.tw.rb +0 -74
  226. data/lib/whois/record/parser/whois.tznic.or.tz.rb +0 -27
  227. data/lib/whois/record/parser/whois.ua.rb +0 -242
  228. data/lib/whois/record/parser/whois.udag.net.rb +0 -30
  229. data/lib/whois/record/parser/whois.uniregistry.net.rb +0 -68
  230. data/lib/whois/record/parser/whois.usp.ac.fj.rb +0 -74
  231. data/lib/whois/record/parser/whois.verisign-grs.com.rb +0 -51
  232. data/lib/whois/record/parser/whois.website.ws.rb +0 -76
  233. data/lib/whois/record/parser/whois.wildwestdomains.com.rb +0 -37
  234. data/lib/whois/record/parser/whois.yoursrs.com.rb +0 -127
  235. data/lib/whois/record/parser/whois.za.net.rb +0 -74
  236. data/lib/whois/record/parser/whois.za.org.rb +0 -74
  237. data/lib/whois/record/parser/whois1.nic.bi.rb +0 -27
  238. data/lib/whois/record/parser/za_central_registry.rb +0 -70
  239. data/lib/whois/record/registrar.rb +0 -34
  240. data/lib/whois/record/scanners/base.rb +0 -126
  241. data/lib/whois/record/scanners/base_afilias.rb +0 -63
  242. data/lib/whois/record/scanners/base_cocca2.rb +0 -55
  243. data/lib/whois/record/scanners/base_icann_compliant.rb +0 -57
  244. data/lib/whois/record/scanners/base_iisse.rb +0 -48
  245. data/lib/whois/record/scanners/base_shared1.rb +0 -43
  246. data/lib/whois/record/scanners/base_shared2.rb +0 -47
  247. data/lib/whois/record/scanners/base_shared3.rb +0 -49
  248. data/lib/whois/record/scanners/base_whoisd.rb +0 -56
  249. data/lib/whois/record/scanners/iana.rb +0 -101
  250. data/lib/whois/record/scanners/scannable.rb +0 -77
  251. data/lib/whois/record/scanners/verisign.rb +0 -112
  252. data/lib/whois/record/scanners/whois.ati.tn.rb +0 -44
  253. data/lib/whois/record/scanners/whois.audns.net.au.rb +0 -37
  254. data/lib/whois/record/scanners/whois.cctld.by.rb +0 -47
  255. data/lib/whois/record/scanners/whois.centralnic.com.rb +0 -44
  256. data/lib/whois/record/scanners/whois.cira.ca.rb +0 -84
  257. data/lib/whois/record/scanners/whois.cnnic.cn.rb +0 -54
  258. data/lib/whois/record/scanners/whois.denic.de.rb +0 -108
  259. data/lib/whois/record/scanners/whois.dns.hr.rb +0 -37
  260. data/lib/whois/record/scanners/whois.domainregistry.ie.rb +0 -58
  261. data/lib/whois/record/scanners/whois.fi.rb +0 -51
  262. data/lib/whois/record/scanners/whois.nc.rb +0 -44
  263. data/lib/whois/record/scanners/whois.nic.cz.rb +0 -34
  264. data/lib/whois/record/scanners/whois.nic.it.rb +0 -104
  265. data/lib/whois/record/scanners/whois.pir.org.rb +0 -29
  266. data/lib/whois/record/scanners/whois.registry.net.za.rb +0 -104
  267. data/lib/whois/record/scanners/whois.rnids.rs.rb +0 -64
  268. data/lib/whois/record/scanners/whois.smallregistry.net.rb +0 -61
  269. data/lib/whois/record/scanners/whois.srs.net.nz.rb +0 -35
  270. data/lib/whois/record/scanners/whois.sx.rb +0 -49
  271. data/lib/whois/record/scanners/whois.tld.ee.rb +0 -57
  272. data/lib/whois/record/scanners/whois.tucows.com.rb +0 -35
  273. data/lib/whois/record/scanners/whois.yoursrs.com.rb +0 -36
  274. data/lib/whois/record/super_struct.rb +0 -62
@@ -1,128 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
-
10
- require 'whois/record/parser/base'
11
-
12
-
13
- module Whois
14
- class Record
15
- class Parser
16
-
17
- # Parser for the whois.dns.lu server.
18
- #
19
- # @note This parser is just a stub and provides only a few basic methods
20
- # to check for domain availability and get domain status.
21
- # Please consider to contribute implementing missing methods.
22
- #
23
- # @see Whois::Record::Parser::Example
24
- # The Example parser for the list of all available methods.
25
- #
26
- class WhoisDnsLu < Base
27
-
28
- property_supported :status do
29
- if content_for_scanner =~ /domaintype:\s+(.+)\n/
30
- case $1.downcase
31
- when "active"
32
- :registered
33
- else
34
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
35
- end
36
- else
37
- :available
38
- end
39
- end
40
-
41
- property_supported :available? do
42
- !!(content_for_scanner =~ /% No such domain/)
43
- end
44
-
45
- property_supported :registered? do
46
- !available?
47
- end
48
-
49
-
50
- property_supported :created_on do
51
- if content_for_scanner =~ /registered:\s+(.*)\n/
52
- # Force the parser to use the dd/mm/yyyy format.
53
- Time.utc(*$1.split("/").reverse)
54
- end
55
- end
56
-
57
- property_not_supported :updated_on
58
-
59
- property_not_supported :expires_on
60
-
61
-
62
- property_supported :registrar do
63
- if name = value_for_key('registrar-name')
64
- Record::Registrar.new(
65
- name: name,
66
- url: value_for_key('registrar-url'),
67
- )
68
- end
69
- end
70
-
71
- property_supported :registrant_contacts do
72
- build_contact('org', Record::Contact::TYPE_REGISTRANT)
73
- end
74
-
75
- property_supported :admin_contacts do
76
- build_contact('adm', Record::Contact::TYPE_ADMINISTRATIVE)
77
- end
78
-
79
- property_supported :technical_contacts do
80
- build_contact('tec', Record::Contact::TYPE_TECHNICAL)
81
- end
82
-
83
-
84
- property_supported :nameservers do
85
- values_for_key('nserver').map do |line|
86
- if line =~ /(.+) \[(.+)\]/
87
- Record::Nameserver.new(name: $1, ipv4: $2)
88
- else
89
- Record::Nameserver.new(name: line)
90
- end
91
- end
92
- end
93
-
94
-
95
- private
96
-
97
- def build_contact(element, type)
98
- if name = value_for_key('%s-name' % element)
99
- Record::Contact.new(
100
- type: type,
101
- id: nil,
102
- name: name,
103
- address: value_for_key('%s-address' % element),
104
- city: value_for_key('%s-city' % element),
105
- zip: value_for_key('%s-zipcode' % element),
106
- country_code: value_for_key('%s-country' % element),
107
- email: value_for_key('%s-email' % element)
108
- )
109
- end
110
- end
111
-
112
- def value_for_key(key)
113
- values = values_for_key(key)
114
- if values.size > 1
115
- values.join(', ')
116
- else
117
- values.first
118
- end
119
- end
120
-
121
- def values_for_key(key)
122
- content_for_scanner.scan(/#{key}:\s+(.+)\n/).flatten
123
- end
124
-
125
- end
126
- end
127
- end
128
- end
@@ -1,153 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
-
10
- require 'whois/record/parser/base'
11
-
12
-
13
- module Whois
14
- class Record
15
- class Parser
16
-
17
- # Parser for the whois.dns.pl server.
18
- #
19
- # @see Whois::Record::Parser::Example
20
- # The Example parser for the list of all available methods.
21
- #
22
- class WhoisDnsPl < Base
23
-
24
- property_supported :domain do
25
- if content_for_scanner =~ /DOMAIN NAME:\s+(.+)\n/
26
- $1
27
- end
28
- end
29
-
30
- property_not_supported :domain_id
31
-
32
-
33
- property_supported :status do
34
- if available?
35
- :available
36
- else
37
- :registered
38
- end
39
- end
40
-
41
- property_supported :available? do
42
- !!(content_for_scanner =~ /^No information available about domain name/)
43
- end
44
-
45
- property_supported :registered? do
46
- !available?
47
- end
48
-
49
-
50
- property_supported :created_on do
51
- if content_for_scanner =~ /created:\s+(.+?)\n/
52
- Time.parse($1)
53
- end
54
- end
55
-
56
- property_supported :updated_on do
57
- if content_for_scanner =~ /last modified:\s+(.+?)\n/
58
- Time.parse($1)
59
- end
60
- end
61
-
62
- property_supported :expires_on do
63
- if content_for_scanner =~ /renewal date:\s+(.+?)\n/ && $1 != "not defined"
64
- Time.parse($1)
65
- end
66
- end
67
-
68
-
69
- property_supported :registrar do
70
- match = content_for_scanner.slice(/REGISTRAR:\n((.+\n)+)\n/, 1)
71
- return unless match
72
-
73
- lines = match.split("\n")
74
- Record::Registrar.new(
75
- :name => lines[0]
76
- )
77
- end
78
-
79
- property_not_supported :registrant_contacts
80
-
81
- property_not_supported :admin_contacts
82
-
83
- property_supported :technical_contacts do
84
- build_contact("TECHNICAL CONTACT", Record::Contact::TYPE_TECHNICAL)
85
- end
86
-
87
-
88
- property_supported :nameservers do
89
- content_for_scanner.scan(/nameservers:\s+(.+)\n(.+)\n/).flatten.map do |line|
90
- line.strip!
91
- if line =~ /(.+) \[(.+)\]/
92
- Record::Nameserver.new(:name => $1.chomp("."), :ipv4 => $2)
93
- else
94
- Record::Nameserver.new(:name => line.chomp("."))
95
- end
96
- end
97
- end
98
-
99
- # Checks whether the response has been throttled.
100
- #
101
- # @return [Boolean]
102
- #
103
- # @example
104
- # Looup quota exceeded.
105
- #
106
- def response_throttled?
107
- !!(content_for_scanner =~ /^request limit exceeded for/)
108
- end
109
-
110
-
111
- private
112
-
113
- def build_contact(element, type)
114
- match = content_for_scanner.slice(/#{element}:\n((.+\n)+)\n/, 1)
115
- return unless match
116
-
117
- values = parse_contact_block(match.split("\n"))
118
- zip, city = values["city"].match(/(.+?) (.+)/)[1..2]
119
-
120
- Record::Contact.new(
121
- :type => type,
122
- :id => values["handle"],
123
- :name => nil,
124
- :organization => values["company"],
125
- :address => values["street"],
126
- :city => city,
127
- :zip => zip,
128
- :state => nil,
129
- :country_code => values["location"],
130
- :phone => values["phone"],
131
- :fax => values["fax"],
132
- :email => nil
133
- )
134
- end
135
-
136
- def parse_contact_block(lines)
137
- key = nil
138
- hash = {}
139
- lines.each do |line|
140
- if line =~ /(.+):(.+)/
141
- hash[key = $1] = $2.strip
142
- else
143
- hash[key] += "\n#{line.strip}"
144
- end
145
- end
146
- hash
147
- end
148
-
149
- end
150
-
151
- end
152
- end
153
- end
@@ -1,79 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
-
10
- require 'whois/record/parser/base'
11
-
12
-
13
- module Whois
14
- class Record
15
- class Parser
16
-
17
- # Parser for the whois.dns.pt server.
18
- #
19
- # @note This parser is just a stub and provides only a few basic methods
20
- # to check for domain availability and get domain status.
21
- # Please consider to contribute implementing missing methods.
22
- #
23
- # @see Whois::Record::Parser::Example
24
- # The Example parser for the list of all available methods.
25
- #
26
- class WhoisDnsPt < Base
27
-
28
- property_supported :status do
29
- if content_for_scanner =~ /^Estado \/ Status:\s+(.+)\n/
30
- case $1.downcase
31
- when "active"
32
- :registered
33
- when "reserved"
34
- :reserved
35
- when "tech-pro"
36
- :inactive
37
- else
38
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
39
- end
40
- else
41
- :available
42
- end
43
- end
44
-
45
- property_supported :available? do
46
- !!(content_for_scanner =~ /^.* no match$/)
47
- end
48
-
49
- property_supported :registered? do
50
- !available?
51
- end
52
-
53
-
54
- property_supported :created_on do
55
- if content_for_scanner =~ / Creation Date .+?:\s+(.+)\n/
56
- Time.utc(*$1.split("/").reverse)
57
- end
58
- end
59
-
60
- property_not_supported :updated_on
61
-
62
- property_supported :expires_on do
63
- if content_for_scanner =~ / Expiration Date .+?:\s+(.+)\n/
64
- Time.utc(*$1.split("/").reverse)
65
- end
66
- end
67
-
68
-
69
- property_supported :nameservers do
70
- content_for_scanner.scan(/Nameserver:\s+(?:.*)\s+NS\s+(.+?)\.\n/).flatten.map do |name|
71
- Record::Nameserver.new(:name => name)
72
- end
73
- end
74
-
75
- end
76
-
77
- end
78
- end
79
- end
@@ -1,125 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
-
10
- require 'whois/record/parser/base'
11
-
12
-
13
- module Whois
14
- class Record
15
- class Parser
16
-
17
- # Parser for the whois.domain-registry.nl server.
18
- #
19
- # @note This parser is just a stub and provides only a few basic methods
20
- # to check for domain availability and get domain status.
21
- # Please consider to contribute implementing missing methods.
22
- #
23
- # @see Whois::Record::Parser::Example
24
- # The Example parser for the list of all available methods.
25
- #
26
- class WhoisDomainRegistryNl < Base
27
-
28
- # == Values for Status
29
- #
30
- # - free: the .nl domain name is still available for registration
31
- # - withdrawn: the .nl domain name is barred from registration
32
- # - excluded: the .nl domain name is excluded from registration
33
- # - requested: an application for the .nl domain name is being processed
34
- # - active: the .nl domain name has already been registered. (If you want to know who has registered the name, tick the ‘Extended search’ box. You will then be shown more information about whoever has registered the name.)
35
- # - inactive: the .nl domain name has already been registered, but has not yet been added to the .nl zone file. (If you want to know who has registered the name, tick the ‘Extended search’ box. You will then be shown more information about whoever has registered the name.)
36
- # - in quarantine: this .nl domain name's registration has been cancelled. Following cancellation, a domain name is placed in quarantine for forty days.
37
- #
38
- # @see https://www.sidn.nl/en/whois/
39
- # @see https://www.sidn.nl/en/about-nl/whois/looking-up-a-domain-name/
40
- #
41
- property_supported :status do
42
- if content_for_scanner =~ /Status:\s+(.+?)\n/
43
- case $1.downcase
44
- when "active"
45
- :registered
46
- when "in quarantine"
47
- :redemption
48
- when "inactive"
49
- :inactive
50
- else
51
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
52
- end
53
- else
54
- :available
55
- end
56
- end
57
-
58
- property_supported :available? do
59
- status == :available
60
- end
61
-
62
- property_supported :registered? do
63
- status != :available
64
- end
65
-
66
-
67
- property_supported :created_on do
68
- if content_for_scanner =~ /Date registered:\s+(.+)\n/
69
- Time.parse($1)
70
- end
71
- end
72
-
73
- property_supported :updated_on do
74
- if content_for_scanner =~ /Record last updated:\s+(.+)\n/
75
- Time.parse($1)
76
- end
77
- end
78
-
79
- property_not_supported :expires_on
80
-
81
-
82
- property_supported :nameservers do
83
- if content_for_scanner =~ /Domain nameservers:\n((.+\n)+)\n/
84
- $1.split("\n").map do |line|
85
- name, ipv4 = line.strip.split(/\s+/)
86
- Record::Nameserver.new(:name => name, :ipv4 => ipv4)
87
- end
88
- end
89
- end
90
-
91
-
92
- # Checks whether the response has been throttled.
93
- #
94
- # @return [Boolean]
95
- #
96
- # @example
97
- # whois.domain-registry.nl: only 1 request per second allowed, try again later
98
- #
99
- # @example
100
- # whois.domain-registry.nl: daily whois-limit exceeded
101
- #
102
- def response_throttled?
103
- case content_for_scanner
104
- when /^#{Regexp.escape("whois.domain-registry.nl: only 1 request per second allowed, try again later")}/
105
- true
106
- when /^#{Regexp.escape("whois.domain-registry.nl: daily whois-limit exceeded")}/
107
- true
108
- else
109
- false
110
- end
111
- end
112
-
113
- # Checks whether this response contains a message
114
- # that can be reconducted to a "WHOIS Server Unavailable" status.
115
- #
116
- # @return [Boolean]
117
- def response_unavailable?
118
- !!(content_for_scanner =~ /Server too busy, try again later/)
119
- end
120
-
121
- end
122
-
123
- end
124
- end
125
- end