Example #1
0
 def test(self):
     from gevent.socket import ssl, socket
     listener = socket()
     listener.bind(('0.0.0.0', 0))
     listener.listen(5)
     listener = ssl(listener)
     self.assertRaises(TypeError, self.ServerSubClass, listener)
Example #2
0
 def test(self):
     from gevent.socket import ssl, socket
     listener = socket()
     listener.bind(('0.0.0.0', 0))
     listener.listen(5)
     listener = ssl(listener)
     self.assertRaises(TypeError, self.ServerSubClass, listener)
Example #3
0
 def _connect(self, host, port):
     self.host = host
     self.port = int(port)
     self.soc = socket(AF_INET, SOCK_STREAM)
     ADDR = (self.host, self.port)
     self.soc.connect(ADDR)
     self.greenlet.spawn(self.on_message)
     self.greenlet.spawn(self.send_heartbeat)
Example #4
0
 def __init__(self, address):
     """
     @param address   (host, port) of CG services endpoint
     """
     self._address = address
     self._sock = socket(AF_INET, SOCK_DGRAM)
     self._recv = _Recv(self._sock)
     log.debug("CGSNClient created.")
Example #5
0
 def __init__(self, cg_address):
     """
     @param address   (host, port) of the CG services endpoint
     """
     self._cg_address = cg_address
     self._cg_sock = socket(AF_INET, SOCK_DGRAM)
     self._receiver = _Receiver()
     log.debug("CGSNClient created. cg_address: %s", cg_address)
Example #6
0
    def __init__(self):
        Greenlet.__init__(self)

        self._sock = socket(AF_INET, SOCK_DGRAM)
        self._sock.bind(get_cg_client_address())
        self._listener = self._dummy_listener
        self._line = ''
        self._running = False
Example #7
0
 def __init__(self, cg_address):
     """
     @param address   (host, port) of the CG services endpoint
     """
     self._cg_address = cg_address
     self._cg_sock = socket(AF_INET, SOCK_DGRAM)
     self._receiver = _Receiver()
     log.debug("CGSNClient created. cg_address: %s", cg_address)
Example #8
0
	def __init__(self, srcPort): #srcPort
		self.skt      = socket(AF_INET, SOCK_DGRAM) #UDP
		self.pktId    = 0
		self.desAddr  = None
		self.recvData = None
		try:
			self.skt.bind(('', srcPort)) #used for recv
		except: raise BIND_FAIL()
Example #9
0
    def __init__(self):
        Greenlet.__init__(self)

        self._sock = socket(AF_INET, SOCK_DGRAM)
        self._sock.bind(get_cg_client_address())
        self._listener = self._dummy_listener
        self._line = ''
        self._running = False
def main(port):
    # 注意是从gevent包中的socket类来创建对象
    s = gevent.socket(AF_INET, SOCK_STREAM)
    s.bind(('', 8080))
    s.listen(5)
    while True:
        cli, addr = s.accept()
        gevent.spawn(handle_request, cli)
Example #11
0
 def __init__(self, srcPort):  #srcPort
     self.skt = socket(AF_INET, SOCK_DGRAM)  #UDP
     self.pktId = 0
     self.desAddr = None
     self.recvData = None
     try:
         self.skt.bind(('', srcPort))  #used for recv
     except:
         raise BIND_FAIL()
Example #12
0
    def check_connection(self):
        if self._connection == None:
            print "Connecting to server[%s]" % (self._addr)
            sock = socket(AF_INET, SOCK_STREAM, 0)
            host, port  = self._addr.split(':')
            ret = sock.connect_ex((host, int(port)))
            if ret == 0:
                print "Connection established to addr[%s]" % (self._addr)
                self._connection = sock
                return True

            print "Connecting failed to addr[%s]" % (self._addr)
            return False

        return True
Example #13
0
	def __init__(self, srcPort):
	#UDP socket
		self.skt  = socket(AF_INET, SOCK_DGRAM) #UDP
		self.skt.bind(('', srcPort)) 			#used for recv
	#receivers, senders and ACK waiting list
		self.expId 		= ListDict()			#destAddr => a list of acceptable pktId
		self.nextId 	= ListDict()			#destAddr => lastPktId
		self.notACKed 	= oDict()				#(pktId, destAddr) => [timestamp, resendNum, sendPkt]
	#packet Buffer
		self.datPkts   = Queue()
	#coroutine
		spawn(self.recvLoop)
		spawn(self.ackLoop)
		sleep(0)
	#failed Connections
		self.failed = []
Example #14
0
    def check_connection(self):
        if self._connection == None:
            print "Connecting to server[%s]" % (self._addr)
            sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM, 0),
                self._key_file,
                self._cert_file,
                ssl_version=ssl.PROTOCOL_SSLv3)
            host, port  = self._addr.split(':')
            ret = sock.connect_ex((host, int(port)))
            if ret == 0:
                print "Connection established to addr[%s]" % (self._addr)
                self._connection = sock
                return True
            print "Connecting failed to addr[%s]" % (self._addr)

            return False
        return True
Example #15
0
def InitConfig(file_name):
  tree = ET.ElementTree(file=file_name)
  root = tree.getroot()
  ip = root.find('server').attrib['ip']
  port = root.find('server').attrib['port']
  servers = {}
  conns = []
  targets = root.find('targets')
  for target in targets:
    servers[target.attrib['name']] = (target.attrib['ip'], target.attrib['port'])
    sock = socket(AF_INET,SOCK_STREAM)
    try:
      sock.connect((target.attrib['ip'], int(target.attrib['port'])))
    except error as e:
      if e.errno != 111:
        raise e
      print 'Can not connect to %s' % target.attrib['ip']
    else:
      conns.append(sock)

  return ip, port, servers, conns
Example #16
0
def InitConfig(file_name):
    tree = ET.ElementTree(file=file_name)
    root = tree.getroot()
    ip = root.find('server').attrib['ip']
    port = root.find('server').attrib['port']
    servers = {}
    conns = []
    targets = root.find('targets')
    for target in targets:
        servers[target.attrib['name']] = (target.attrib['ip'],
                                          target.attrib['port'])
        sock = socket(AF_INET, SOCK_STREAM)
        try:
            sock.connect((target.attrib['ip'], int(target.attrib['port'])))
        except error as e:
            if e.errno != 111:
                raise e
            print 'Can not connect to %s' % target.attrib['ip']
        else:
            conns.append(sock)

    return ip, port, servers, conns
Example #17
0
def _create_connection(address,
                       timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
                       source_address=None,
                       prepare=None):
    # Taken from:
    # https://github.com/python/cpython/blob/0f40482fde59ff307569fa5676183dd8432809a8/Lib/socket.py#L771
    # Licensed under the PSFL, version 2
    # Copyright (c) 2001-now Python Software Foundation
    host, port = address
    err = None
    for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
        af, socktype, proto, canonname, sa = res
        sock = None
        try:
            sock = socket(af, socktype, proto)
            if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
                sock.settimeout(timeout)
            if source_address:
                sock.bind(source_address)
            if prepare:
                prepare(sock)
            sock.connect(sa)
            # Break explicitly a reference cycle
            err = None
            return sock

        except socket.error as e:
            err = e
            if sock is not None:
                sock.close()

    if err is not None:
        try:
            raise err
        finally:
            # Break explicitly a reference cycle
            err = None
    else:
        raise socket.error("getaddrinfo returns an empty list")
Example #18
0
 def connect(self):
     hostname, port, resource, is_secure = self._parse_url(self.url)
     addrinfo_list = getaddrinfo(hostname, port, 0, 0, SOL_TCP)
     try:
         self.sock = socket(addrinfo_list[0][0])
         self.sock.connect(addrinfo_list[0][4])
         if is_secure:
             if HAVE_SSL:
                 sslopt = dict(cert_reqs=ssl.CERT_REQUIRED)
                 certPath = os.path.join(
                     os.path.dirname(__file__), "cacert.pem")
                 if os.path.isfile(certPath):
                     sslopt['ca_certs'] = certPath
                 #sslopt.update(self.sslopt)
                 check_hostname = sslopt.pop('check_hostname', True)
                 self.sock = ssl.wrap_socket(self.sock, **sslopt)
                 if (sslopt["cert_reqs"] != ssl.CERT_NONE
                         and check_hostname):
                     match_hostname(self.sock.getpeercert(), hostname)
             else:
                 raise WebSocketException("SSL not available.")
         self.stream=Stream(self)
     except Exception, e:
         raise e
Example #19
0
    def __init__(self, srcPort):
        #UDP socket
        self.skt = socket(AF_INET, SOCK_DGRAM)  #UDP
        self.skt.bind(('', srcPort))  #used for recv
        #receivers, senders and ACK waiting list
        self.expId = ListDict()  #destAddr => a list of acceptable pktId
        self.nextId = ListDict()  #destAddr => lastPktId
        self.notACKed = oDict(
        )  #(pktId, destAddr) => [timestamp, resendNum, sendPkt]
        #packet Buffer
        self.datPkts = Queue()
        #coroutine
        spawn(self.recvLoop)
        spawn(self.ackLoop)
        sleep(0)
        #failed Connections
        self.failed = []
        #write log
        if RUDP_LOG:
            self.log = Logger()

    #stat
        if RUDP_STAT:
            self.rec = Recorder()
Example #20
0
from gevent import Greenlet
from gevent.socket import *

def echo(socket, addr):
    print '...connected from:', addr
    fileobj = socket.makefile()
    while True:
        line = fileobj.readline()
        if not line: break
        fileobj.write("echo: "+line)
        fileobj.flush()

serversock = socket(AF_INET, SOCK_STREAM)
serversock.bind( ('localhost',8080) )
serversock.listen(2)

while 1:
     print 'waiting for connection...'
     clientsock, addr = serversock.accept()
     Greenlet(echo, clientsock, addr).start()

Example #21
0
def testips(dest_ip, dport, verbose, ssl_only, info):
    device = None
    ctx = ssl.create_default_context()
    ctx.check_hostname = False
    ctx.verify_mode = ssl.CERT_NONE
    ctx.set_ciphers('ALL')
    s = socket()
    s.settimeout(5)
    try:
        c = ssl.wrap_socket(s, cert_reqs=ssl.CERT_NONE)
        c.connect((dest_ip, dport))
        a = c.getpeercert(True)
        b = str(ssl.DER_cert_to_PEM_cert(a))
        device = (certs.getcertinfo(b))
        #if verbose is not None:
        #print "Trying: ",str(dest_ip).rstrip('\r\n)')
        #print "device: ",device
        if device is not None:
            if device is "ubiquiti":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Ubiquiti AirMax or AirFiber Device (SSL)"
            if "UBNT" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Ubiquiti AirMax or AirFiber Device (SSL)"
            elif "samsung" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Unknown Samsung Device (SSL)"
            elif "qnap" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": QNAP NAS TS series detected (SSL)"
            elif device is "hikvision":
                print str(dest_ip).rstrip('\r\n)') + ": Hikvision Default Cert"
            elif device is "avigilon":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Aviligon Gateway Default cert"
            elif device is "netgear_1":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": NetGear Default cert UTM  (SSL)"
            elif device is "verifone_sapphire":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Verifone Sapphire Device (SSL)"
            elif "Vigor" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": DrayTek Vigor Device (SSL)"
            elif device is "lifesize_1":
                print str(dest_ip).rstrip('\r\n)') + ": Lifesize Product (SSL)"
            elif "filemaker" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Filemaker Secure Database Website (SSL)"
            elif device is "verizon_jungo":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Verizon Jungo OpenRG product (SSL/8443)"
            elif device is "canon_iradv":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Canon IR-ADV Login Page (SSL/8443)"
            elif "colubris" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": HPE MSM Series Device (SSL)"
            elif device is "ecessa":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Ecessa PowerLink Wan Optimizer (SSL)"
            elif device is "nomadix_ag_1":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Nomadix AG series Gateway (SSL)"
            elif "netvanta" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": ADTRAN NetVanta Total Access Device (SSL)"
            elif "valuepoint_gwc_1" is device:
                print str(dest_ip).rstrip(
                    '\r\n)'
                ) + ": ValuePoint Networks Gateway Controller Series (SSL)"
            elif device is "broadcom_1":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Broadcom Generic Modem (SSL)"
            elif device is "lg_nas_1":
                print str(dest_ip).rstrip('\r\n)') + ": LG NAS Device (SSL)"
            elif device is "edgewater_1":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": EdgeWater Networks VOIP Solution (SSL)"
            elif device is "foscam_cam":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Foscam IPcam Client Login (SSL)"
            elif device is "lacie_1":
                print str(dest_ip).rstrip('\r\n)') + ": LaCie CloudBox (SSL)"
            elif device is "huawei_hg658":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Huawei Home Gateway HG658d (SSL)"
            elif device is "interpeak_device":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Something made by interpeak (SSL)"
            elif device is "fujistu_celvin":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Fujitsu Celvin NAS (SSL)"
            elif device is "opengear_default_cert":
                print str(dest_ip).rstrip(
                    '\r\n)'
                ) + ": Opengear Management Console Default cert (SSL)"
            elif device is "zyxel_pk5001z":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Zyxel PK5001Z default cert (SSL)"
            elif device is "audiocodecs_8443":
                print str(dest_ip).rstrip(
                    '\r\n)'
                ) + ": AudioCodecs MP serices 443/8443 Default Cert (SSL)"
            elif "supermicro_ipmi" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Supermicro IPMI Default Certs (SSL)"
            elif device is "enco_player_1":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Enco Enplayer Default Cert (SSL)"
            elif device is "ami_megarac":
                print str(dest_ip).rstrip(
                    '\r\n)'
                ) + ": AMI MegaRac Remote Management Default Cert (SSL)"
            elif device is "avocent_1":
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Avocent Default cert (unknown device) (SSL)"
            elif device is "ligowave_1":
                print str(dest_ip).rstrip(
                    '\r\n)'
                ) + ": LigoWave Default Cert (probably APC Propeller 5) (SSL)"
            elif "intelbras_wom500" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": IntelBras Wom500 (admin/admin) (SSL)"
            elif "netgear_2" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Netgear Default Cert Home Router (8443/SSL)"
            elif "buffalo_1" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Buffalo Default Cert (443/SSL)"
            elif "digi_int_1" in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Digi Passport Default Cert (443/SSL)"
            elif "prtg_network_monitor_1" in device:
                print str(dest_ip).rstrip(
                    '\r\n)'
                ) + ": Paessler PTRG Monitoring Default Cert(443/SSL)"
            elif 'axentra_1' in device:
                print str(dest_ip).rstrip(
                    '\r\n)'
                ) + ": Seagate/Axentra NAS Default Cert 863B4AB (443/SSL)"
            elif 'ironport_device' in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Cisco IronPort Device Default SSL (443/SSL)"
            elif 'meru_net_1' in device:
                print str(dest_ip).rstrip(
                    '\r\n)') + ": Meru Network Management Device  (443/SSL)"
            #elif "matrix_sample_ssl_1":
            #	print str(dest_ip).rstrip('\r\n)') + ": Matrix SSL default server for WiMax Devices(443/SSL)"
        elif a is not None and device is None:
            getheaders_ssl(dest_ip, dport, a, verbose, ctx, ssl_only, info)
        else:
            print "Something error happened"

        s.close()
    except KeyboardInterrupt:
        print "Quitting"
        sys.exit(0)
    except Exception as e:
        s.close()
        if 111 in e and ssl_only == 0:
            getheaders(dest_ip, dport, verbose, info)
        elif ("timed out" or 'sslv3' in e) and ssl_only == 0:
            getheaders(dest_ip, dport, verbose, info)
            pass
            if verbose is not None:
                print e
        if verbose is not None:
            print "Error Catch at line 133", e
Example #22
0
from gevent import Greenlet
from gevent.socket import *


def echo(socket, addr):
    print '...connected from:', addr
    fileobj = socket.makefile()
    while True:
        line = fileobj.readline()
        if not line: break
        fileobj.write("echo: " + line)
        fileobj.flush()


serversock = socket(AF_INET, SOCK_STREAM)
serversock.bind(('localhost', 8080))
serversock.listen(2)

while 1:
    print 'waiting for connection...'
    clientsock, addr = serversock.accept()
    Greenlet(echo, clientsock, addr).start()
Example #23
0
	def __init__(self, srcPort):
		self.skt = socket(AF_INET, SOCK_DGRAM) 	#UDP
		self.skt.bind(('', srcPort)) 			#used for recv
		self.seq = 0
Example #24
0
def testips(dest_ip, dport, verbose, ssl_only, info):
    device = None
    ctx = ssl.create_default_context()
    ctx.check_hostname = False
    ctx.verify_mode = ssl.CERT_NONE
    ctx.set_ciphers('ALL')
    s = socket()
    s.settimeout(3)
    try:
        c = ssl.wrap_socket(s, cert_reqs=ssl.CERT_NONE)
        c.connect((dest_ip, dport))
        a = c.getpeercert(True)
        b = str(ssl.DER_cert_to_PEM_cert(a))
        device = (certs.getcertinfo(b))
        # if verbose is not None:
        # print "Trying: ",str(dest_ip).rstrip('\r\n)')
        # print "device: ",device
        if device is not None:
            if device is "ubiquiti":
                print str(dest_ip).rstrip('\r\n)') + ": Ubiquiti AirMax or AirFiber Device (SSL)"
            if "UBNT" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Ubiquiti AirMax or AirFiber Device (SSL)"
            elif "samsung" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Unknown Samsung Device (SSL)"
            elif "qnap" in device:
                print str(dest_ip).rstrip('\r\n)') + ": QNAP NAS TS series detected (SSL)"
            elif device is "hikvision":
                print str(dest_ip).rstrip('\r\n)') + ": Hikvision Default Cert"
            elif device is "avigilon":
                print str(dest_ip).rstrip('\r\n)') + ": Aviligon Gateway Default cert"
            elif device is "netgear_1":
                print str(dest_ip).rstrip('\r\n)') + ": NetGear Default cert UTM  (SSL)"
            elif device is "verifone_sapphire":
                print str(dest_ip).rstrip('\r\n)') + ": Verifone Sapphire Device (SSL)"
            elif "Vigor" in device:
                print str(dest_ip).rstrip('\r\n)') + ": DrayTek Vigor Device (SSL)"
            elif device is "lifesize_1":
                print str(dest_ip).rstrip('\r\n)') + ": Lifesize Product (SSL)"
            elif "filemaker" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Filemaker Secure Database Website (SSL)"
            elif device is "verizon_jungo":
                print str(dest_ip).rstrip('\r\n)') + ": Verizon Jungo OpenRG product (SSL/8443)"
            elif device is "canon_iradv":
                print str(dest_ip).rstrip('\r\n)') + ": Canon IR-ADV Login Page (SSL/8443)"
            elif "colubris" in device:
                print str(dest_ip).rstrip('\r\n)') + ": HPE MSM Series Device (SSL)"
            elif device is "ecessa":
                print str(dest_ip).rstrip('\r\n)') + ": Ecessa PowerLink Wan Optimizer (SSL)"
            elif device is "nomadix_ag_1":
                print str(dest_ip).rstrip('\r\n)') + ": Nomadix AG series Gateway (SSL)"
            elif "netvanta" in device:
                print str(dest_ip).rstrip('\r\n)') + ": ADTRAN NetVanta Total Access Device (SSL)"
            elif "valuepoint_gwc_1" is device:
                print str(dest_ip).rstrip('\r\n)') + ": ValuePoint Networks Gateway Controller Series (SSL)"
            elif device is "broadcom_1":
                print str(dest_ip).rstrip('\r\n)') + ": Broadcom Generic Modem (SSL)"
            elif device is "lg_nas_1":
                print str(dest_ip).rstrip('\r\n)') + ": LG NAS Device (SSL)"
            elif device is "edgewater_1":
                print str(dest_ip).rstrip('\r\n)') + ": EdgeWater Networks VOIP Solution (SSL)"
            elif device is "foscam_cam":
                print str(dest_ip).rstrip('\r\n)') + ": Foscam IPcam Client Login (SSL)"
            elif device is "lacie_1":
                print str(dest_ip).rstrip('\r\n)') + ": LaCie CloudBox (SSL)"
            elif device is "huawei_hg658":
                print str(dest_ip).rstrip('\r\n)') + ": Huawei Home Gateway HG658d (SSL)"
            elif device is "interpeak_device":
                print str(dest_ip).rstrip('\r\n)') + ": Something made by interpeak (SSL)"
            elif device is "fujistu_celvin":
                print str(dest_ip).rstrip('\r\n)') + ": Fujitsu Celvin NAS (SSL)"
            elif device is "opengear_default_cert":
                print str(dest_ip).rstrip('\r\n)') + ": Opengear Management Console Default cert (SSL)"
            elif device is "zyxel_pk5001z":
                print str(dest_ip).rstrip('\r\n)') + ": Zyxel PK5001Z default cert (SSL)"
            elif device is "audiocodecs_8443":
                print str(dest_ip).rstrip('\r\n)') + ": AudioCodecs MP serices 443/8443 Default Cert (SSL)"
            elif "supermicro_ipmi" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Supermicro IPMI Default Certs (SSL)"
            elif device is "enco_player_1":
                print str(dest_ip).rstrip('\r\n)') + ": Enco Enplayer Default Cert (SSL)"
            elif device is "ami_megarac":
                print str(dest_ip).rstrip('\r\n)') + ": AMI MegaRac Remote Management Default Cert (SSL)"
            elif device is "avocent_1":
                print str(dest_ip).rstrip('\r\n)') + ": Avocent Default cert (unknown device) (SSL)"
            elif device is "ligowave_1":
                print str(dest_ip).rstrip('\r\n)') + ": LigoWave Default Cert (probably APC Propeller 5) (SSL)"
            elif "intelbras_wom500" in device:
                print str(dest_ip).rstrip('\r\n)') + ": IntelBras Wom500 (admin/admin) (SSL)"
            elif "netgear_2" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Netgear Default Cert Home Router (8443/SSL)"
            elif "buffalo_1" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Buffalo Default Cert (443/SSL)"
            elif "digi_int_1" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Digi Passport Default Cert (443/SSL)"
            elif "prtg_network_monitor_1" in device:
                print str(dest_ip).rstrip('\r\n)') + ": Paessler PTRG Monitoring Default Cert(443/SSL)"
            elif 'axentra_1' in device:
                print str(dest_ip).rstrip('\r\n)') + ": Seagate/Axentra NAS Default Cert 863B4AB (443/SSL)"
            elif 'ironport_device' in device:
                print str(dest_ip).rstrip('\r\n)') + ": Cisco IronPort Device Default SSL (443/SSL)"
            elif 'meru_net_1' in device:
                print str(dest_ip).rstrip('\r\n)') + ": Meru Network Management Device  (443/SSL)"
            elif 'bticino_1' in device:
                print str(dest_ip).rstrip('\r\n)') + ": BTcinino My Home Device w/ Default Cert  (443/SSL)"
        # elif "matrix_sample_ssl_1":
        #	print str(dest_ip).rstrip('\r\n)') + ": Matrix SSL default server for WiMax Devices(443/SSL)"
        elif a is not None and device is None:
            getheaders_ssl(dest_ip, dport, a, verbose, ctx, ssl_only, info)
        else:
            print "Something error happened"

        s.close()
    except KeyboardInterrupt:
        print "Quitting"
        sys.exit(0)
    except Exception as e:
        s.close()
        if 111 in e and ssl_only == 0:
            getheaders(dest_ip, dport, verbose, info)
        elif ("timed out" or 'sslv3' in e) and ssl_only == 0:
            getheaders(dest_ip, dport, verbose, info)
            pass
        # if verbose is not None:
        #	print str(dest_ip).rstrip('\r\n)') + ": had error " + str(e).rstrip('\r\n)')
        if verbose is not None:
            print "Error in testip: " + str(e) + " " + str(dest_ip).rstrip('\r\n)')