0

So I've pulled this handy list of TLDs and I was about to test it out. I've got my file loaded from a .tsv and its in my vectors. When I try to open a socket connection to port 43 to whois.verisign-grs.com, all I get is Error #2031: Socket Error. URL: whois.verisign-grs.com. No connect triggered or anything. Does AIR (or me) do something that automatically fails to comply with RFC3912 or something else?

        private function prepConn():void
        {
            socket = new Socket();
            socket.addEventListener(Event.CONNECT, connectHandler);
            socket.addEventListener(Event.CLOSE, closeHandler);
            socket.addEventListener(ErrorEvent.ERROR, errorHandler);
            socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            socket.addEventListener(ProgressEvent.SOCKET_DATA, dataHandler);
        }

        private function ioErrorHandler(e:IOErrorEvent):void 
        {
            trace("IOError"); //<-- Gets called. Never triggers connected.
            trace(e.errorID);
            trace(e.text);
        }

        private function errorHandler(e:ErrorEvent):void 
        {
            trace("Error");
            trace(e.errorID);
            trace(e.text);
        }

        private function connectHandler(e:Event):void 
        {
            trace("Connected"); //<-- Gets called when going to whois.google.com. All ok.
        }

        private function closeHandler(e:Event):void 
        {
            trace("Close");
        }

        public function lookup(domain:String):void
        {
            //...
            //If all passes, perform a lookup.
            try
            { //              whois.verisign-grs.com -    43
                socket.connect(whoisServer[lookupID], QUERY_PORT);
            }
            catch (ioError:IOError)
            {
                trace("IOError on startup");
                trace(ioError.name);
                trace(ioError.errorID);
                trace(ioError.message);
            }
            catch (secError:SecurityError)
            {
                trace("Security Error?");
            }

        }

        private function dataHandler(event:ProgressEvent):void
        {
            trace("Progress event to be handled after I get a conn...");
        }
    }

}

Telnet for Windows isn't the greatest. Only having hitting ? + enter, closing and re-connecting can I get a successful query. But I can connect from my machine. [Edit: Sometimes. Sometimes it likes to close the connection while I type my domain in after some repeated testing. Not sure if this is related]

   Server Name: SFXWORKS.NET
   IP Address: 107.170.1.55
   Registrar: Google Inc.
   Registrar WHOIS Server: whois.google.com
   Registrar URL: http://domains.google.com

   Domain Name: SFXWORKS.NET
   Registry Domain ID: 1664279338_DOMAIN_NET-VRSN
   Registrar WHOIS Server: whois.google.com
   Registrar URL: http://domains.google.com
   Updated Date: 2018-08-01T19:20:07Z
   Creation Date: 2011-06-28T21:26:48Z
   Registry Expiry Date: 2019-06-28T21:26:48Z
   Registrar: Google Inc.
   Registrar IANA ID: 895
   Registrar Abuse Contact Email: registrar-abuse@google.com
   Registrar Abuse Contact Phone: +1.8772376466
   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
   Name Server: LORNA.NS.CLOUDFLARE.COM
   Name Server: MICAH.NS.CLOUDFLARE.COM
   DNSSEC: signedDelegation
   DNSSEC DS Data: 2371 13 2 04939CE20FDDD15F0F6DC314992BC72238BAD3845F6514856115EEB989BDB83C
   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2018-08-02T08:54:17Z <<<

For more information on Whois status codes, please visit https://icann.org/epp

NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar.  Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.

TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may use this Data only
for lawful purposes and that under no circumstances will you use this Data
to: (1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability.  VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.

Edit: Looks like I can connect to whois.google.com just fine. So..not exactly sure what I can do to make this work if their registrar isn't google now...

sfxworks
  • 1,031
  • 8
  • 27
  • Do you just want a WhoIs report? Could a _(non-`socket`)_ regular URL request solve the problem? Example query: https://dig.whois.com.au/whois/sfxworks.net and then parse the loaded html source code `string` to extract the required WhoIs data. Let me know if you need an expansion of this idea (eg: code example) – VC.One Aug 11 '18 at 08:14
  • @VC.One Majority of APIs are either rate limited or don't contain a full list of domains. I need to look up at least 20 a day and this may go to my company for review in which they would need to either need to talk to a private api or directly to a whois server. Trying to use the 2nd method to save the need for a server. – sfxworks Aug 12 '18 at 05:03

0 Answers0