3 0Q=j` ã @ s° d Z ddlmZmZmZmZ ddlZddlZddlZddlm Z ddl Z e jddd�Ze edƒshej e_ejZyddlZW n ek r’ dZY nX d d „ Zdd„ Zd d„ ZdS )z1Used to read hardware info from kudzu, /proc, etcé )ÚgethostnameÚgetaddrinfoÚAF_INETÚAF_INET6N)Úconfigzrhn-client-toolsT)ZfallbackÚugettextc C sB t jƒ } t jƒ }dddœ}d}d}d}�x|D �]}|jdƒd }|jdƒd }|| } xÜttfD ]Ð} ytj| ƒ}W n tjk rŒ wbY nX | d r´t jƒ }|jdƒ\}} t | ƒ} yR|j d ƒ |j|| fƒ |jƒ d } | tkrè| }n| }tj | ƒ}|| k�r|}W n" tjk �r( |jƒ wbY nX |jƒ qbW q.W tjjdƒ�rŽtjdtjƒ�rŽtddƒjƒ }x¸|D ]}t|ƒ�s~�ql|jƒ }�qlW n’tjjd ƒ�r tjd tjƒ�r td dƒjƒ }xd|D ]\}t|ƒ�sÒ�qÀ|jdƒ}t|ƒdk�rî�qÀ|d jƒ dk�rÀdj|dd… ƒjdƒ}P �qÀW |dk�s4|dk�r8d}|||fS )zŸ returns [hostname, intf, intf6] Where hostname is you FQDN of this machine. And intf is numeric IPv4 address. And intf6 is IPv6 address. i» éP )ZhttpsZhttpNú/é ú:r ZenableProxyé z /etc/hostnameÚrz/etc/sysconfig/networkú=é ZHOSTNAMEÚ z"' zlocalhost.localdomainÚunknown)r ÚinitUp2dateConfigZgetServerURLÚsplitr r ÚsocketÚerrorZgetProxySettingÚintZ settimeoutZconnectZgetsocknameÚgetfqdnÚcloseÚosÚpathÚisfileÚaccessÚR_OKÚopenÚ readlinesÚlenÚstripÚjoin)ÚcfgZslÚstÚhostnameZintfZintf6Z serverUrlZserverZ servertypeZportZfamilyÚsZserver_portZintf_tmpZhostname_tmpZhostnameinfoÚinfoZnetworkinfoÚvals© r) ú/usr/lib/python3.6/hardware.pyÚfindHostByRoute&