]Z@sddlZdZddddg\ZZZZeZeZ Gddde Z d d Z d d Z d dZddZddZddZddZddZddZdZZy<ddlZddlZddlZdgZejjdsejdx^eD]VZyejej j!eZ"Wne#k rZwYnXe$e"dre"j%ZPqW[ejdkrddlZeej&j'j(d dd!krdZyej)j*Z"WndZ"YnXe+e"d"e+e"d#dZWnYnXd$d%Z,d&d'Z-d(d)Z.da/d*d+Z0da1ddd,d-Z2d.d/Z3d0d1Z4d2d3Z5e d4Z6e d5Z7e d6Z8e d7Z9dS)8NzKa-Ping Yee zreserved for NCS compatibilityzspecified in RFC 4122z$reserved for Microsoft compatibilityzreserved for future definitionc@seZdZddddddddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ eddZeddZeddZeddZed d!Zed"d#Zed$d%Zed&d'Zed(d)Zed*d+Zed,d-Zed.d/Zed0d1Zed2d3Zed4d5ZdS)6UUIDNcCsY|||||gjddkr0td|dk r|jddjdd}|jdjdd}t|dkrtd t|d }|dk rt|d krtd |d'dd(|d)d*d+|d,d-d.|dd}|dk rNt|d kr9tdtj|dd}|dk rt|d krxtd|\}}} } } } d|kod/knstdd|kod0knstdd| kod1knstdd| kod2kns0tdd| koGd3knsXtdd| kood4knstd| d>| B} |d>|d>B| d>B| d>B| B}|dk rd|kod5knstd|dk rHd |ko d knstd!|d7M}|d8O}|d:M}||d%>O}||jd&|jd>B|jBS)Nir r)r*r)r()r"r/r/r0time sz UUID.timecCs|jd@d>|jBS)N?r )r+r,)r"r/r/r0r.szUUID.clock_seqcCs |jd@S)Nl)r)r"r/r/r0r-sz UUID.nodecCs d|jS)Nz%032x)r)r"r/r/r0r#szUUID.hexcCsdt|S)Nz urn:uuid:)r?)r"r/r/r0urnszUUID.urncCs;|jd@stS|jd@s"tS|jd@s3tStSdS)Nir i@i lll)r RESERVED_NCSRFC_4122RESERVED_MICROSOFTRESERVED_FUTURE)r"r/r/r0variant s   z UUID.variantcCs(|jtkr$t|jd?d@SdS)Nr)rQrNr)r"r/r/r0r'+sz UUID.version)r> __module__ __qualname__r1r5r6r7r8r9r;r<r@rCrFpropertyr$r%r&r(r)r*r+r,rJr.r-r#rLrQr'r/r/r/r0r:s6 0 O           rc Gsddl}ddl}ddl}|j|}|dkrv|jjd }|j|d|}|dkrvdSt|j}d|d<|j|f|d|j d|j d |}|S) Nr/sbin /usr/sbinpathCLC_ALLstdoutstderrenv)rVrW) osshutil subprocesswhichpathsepjoindictenvironPopenPIPEDEVNULL) commandargsr^r_r` executablerXr]procr/r/r0_popen1s$      rmc Csyt||j}|s"dS|x|jD]}|jjj}x~tt|D]j}|||krdy9|||}t|jddd} | r| SWqdt t fk rYqdXqdWq3WWdQRXWnt k rYnXdS)N:r) rmsplitr[lowerrstriprangerrrr IndexErrorOSError) rirjZhw_identifiersZ get_indexrllinewordsiwordmacr/r/r0 _find_macDs$ r{cCs@x9d D]1}td|ddgdd}|r|SqWdS) Nr-a-avZifconfigshwaddrsethercSs|dS)Nrr/)rxr/r/r0asz#_ifconfig_getnode..)rr|r})r{)rjrzr/r/r0_ifconfig_getnode]s !rcCs,tdddgdd}|r(|SdS)NZipz link lists link/ethercSs|dS)Nrr/)rxr/r/r0r~hsz_ip_getnode..)r{)rzr/r/r0 _ip_getnodeesrcCsoddl}ddl}y|j|j}Wntk rIdSYnXtdd|j|gddS)NrZarpz-ancSsdS)Nrrr/)rxr/r/r0r~usz_arp_getnode..)r^socket gethostbyname gethostnamerur{fsencode)r^rZip_addrr/r/r0 _arp_getnodels   rcCstdddgddS)NZlanscanz-aislan0cSsdS)Nrr/)rxr/r/r0r~zsz"_lanscan_getnode..)r{r/r/r/r0_lanscan_getnodewsrc"Cs&y tdd}|sdS||jjjj}y|jd}Wntk ridSYnXx|jD]}yl|jj}||}t|dkr|jddkrt |j ddd}|r|SWqttt fk rYqtXqtWWdQRXWnt k r!YnXdS) NZnetstatz-iasAddressrnrror) rmr[readlinerrrpindexrrrrrrtru)rlrwrxrvryrzr/r/r0_netstat_getnode|s,   ' rc Cs?ddl}ddl}dddg}yQddl}|jd}|jjj|d|jd|jj dWnYnXx|D]}y&|j |j j |dd}Wnt k rwYnX|`xX|D]P}|jd djj}|jd |rt|jd dd SqWWdQRXqWdS)Nrrzc:\windows\system32zc:\winnt\system32i,mbcsZipconfigz /all:rz&([0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]rrr)r^rectypescreate_string_bufferwindllZkernel32ZGetSystemDirectoryAinsertrBdecodepopenrXrcrurprrqmatchrr) r^rdirsrbufferdirpipervrBr/r/r0_ipconfig_getnodes&   &  rcCszddl}ddl}|j}|j|_|j|_}|j|j|dkrfdS|j xt |j D]}|j |j |_t|j||_|j|dkrq|j |j|_t|j||_djd|_|j|_}|j|dkr3q|j |jdd}t|dkreqtj|dSWdS)Nr*rr r ) win32wnetnetbiosZNCBZNCBENUMZCommandZ LANA_ENUMZBufferZ_packZNetbiosZ_unpackrslengthZResetZNCBRESETordZlanaZLana_numZNCBASTATljustZCallnameZADAPTER_STATUSZadapter_addressrrr )rrZncbZadaptersrxstatusr$r/r/r0_netbios_getnodes4         rZuuidwincuuid_generate_timedarwin. ZUuidCreateSequentialZ UuidCreatecCs2tjd}t|tdt|jjS)Nrr$)rr_uuid_generate_timerbytes_rawr-)_bufferr/r/r0_unixdll_getnodes rcCs>tjd}t|dkr:tdt|jjSdS)Nrrr$)rr _UuidCreaterrrr-)rr/r/r0_windll_getnodesrcCsddl}|jddBS)Nrr l)random getrandbits)rr/r/r0_random_getnode s rc Cstdk rtSddl}|jdkr=tttg}ntttt t t g}x@|t gD]1}y |aWn wcYnXtdk rctSqcWdS)Nrwin32) _nodesysplatformrrrrrrrrrr)rZgettersgetterr/r/r0getnodes     rc CsNtrQ||kodknrQtjd}t|tdt|jSddl}t|jd}t|dd}tdk r|tkrtd}|a|dkrddl }|j d}|d @}|d ?d @}|d ?d @} |d@} |d?d@} |dkr)t }td||| | | |fddS)Nrr$rgeAdl@'Hw rlrir irIr rKr&r') rrrrrrrJr_last_timestamprrr) r-r.rrJZ nanosecondsZ timestamprr(r)r*r,r+r/r/r0uuid10s,"         rcCsOddlm}||jt|dj}td|ddddS)Nr)md5zutf-8r$rr'r)hashlibrr$digestr) namespacerArr:r/r/r0uuid3Ss"rcCstdtjdddS)Nr$rr'r)rr^urandomr/r/r/r0uuid4YsrcCsOddlm}||jt|dj}td|ddddS)Nr)sha1zutf-8r$rr'r)rrr$rr)rrArr:r/r/r0uuid5]s"rz$6ba7b810-9dad-11d1-80b4-00c04fd430c8z$6ba7b811-9dad-11d1-80b4-00c04fd430c8z$6ba7b812-9dad-11d1-80b4-00c04fd430c8z$6ba7b814-9dad-11d1-80b4-00c04fd430c8):r^ __author__rMrNrOrPrrr$robjectrrmr{rrrrrrrrrrZ ctypes.utilrZ _libnamesr startswithappendZlibnameZCDLLutilZ find_librarylib ExceptionhasattrrunamereleaserprZrpcrt4getattrrrrrrrrrrrZ NAMESPACE_DNSZ NAMESPACE_URLZ NAMESPACE_OIDZNAMESPACE_X500r/r/r/r0/sr         "         (       #