a mi` @ s d Z ddlmZmZmZmZ ddlZddlZddlZddlm Z ddl Z e jdddZe edshej e_ejZzddlZW n ey dZY n0 d d Zdd Zd d ZdS )z1Used to read hardware info from kudzu, /proc, etc )gethostnamegetaddrinfoAF_INETAF_INET6N)configzrhn-client-toolsT)fallbackugettextc C s2 t } t }ddd}d}d}d}|D ] }|dd }|dd }|| } ttfD ]} zt| }W n tjy Y q\Y n0 | d rt }|d\}} t | } zP| d ||| f | d } | tkr| }n| }t | }|| kr|}W n" tjy | Y q\Y n0 | q\q*tjdr~tdtjr~tdd }|D ]}t|spq^| }q^ntjd rtd tjrtd d }|D ]`}t|sq|d}t|dkrܐq|d dkrd|dd d} qq|dks$|dkr(d}|||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 )httpshttpN/ :r ZenableProxy z /etc/hostnamerz/etc/sysconfig/network= ZHOSTNAME z"' zlocalhost.localdomainunknown)r initUp2dateConfigZgetServerURLsplitr r socketerrorZgetProxySettingintZ settimeoutZconnectZgetsocknamegetfqdncloseospathisfileaccessR_OKopen readlineslenstripjoin)cfgslsthostnameZintfZintf6Z serverUrlZserverZ servertypeportZfamilysZserver_portZintf_tmpZhostname_tmpZhostnameinfoinfoZnetworkinfoZvals r- ;/usr/lib/python3.9/site-packages/up2date_client/hardware.pyfindHostByRoute&