3 0Q=j` @ s d Z ddlmZmZmZmZ ddlZddlZddlZddlm Z ddl Z e jdddZe edshej e_ejZyddlZW n ek r dZY nX d d Zdd Zd d ZdS )z1Used to read hardware info from kudzu, /proc, etc )gethostnamegetaddrinfoAF_INETAF_INET6N)configzrhn-client-toolsT)Zfallbackugettextc C sB t j } t j }ddd}d}d}d}x|D ]}|jdd }|jdd }|| } xttfD ]} ytj| }W n tjk r wbY nX | d rt j }|jd\}} t | } yR|j d |j|| f |j d } | tkr| }n| }tj | }|| kr|}W n" tjk r( |j wbY nX |j qbW q.W tjjdrtjdtjrtddj }x|D ]}t|s~ql|j }qlW ntjjd r tjd tjr td dj }xd|D ]\}t|sҐq|jd}t|dkrq|d j dkrdj|dd jd}P qW |dks4|dkr8d}|||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/hostnamerz/etc/sysconfig/network= ZHOSTNAME z"' zlocalhost.localdomainunknown)r initUp2dateConfigZgetServerURLsplitr r socketerrorZgetProxySettingintZ settimeoutZconnectZgetsocknamegetfqdncloseospathisfileaccessR_OKopen readlineslenstripjoin)cfgZslsthostnameZintfZintf6Z serverUrlZserverZ servertypeZportZfamilysZserver_portZintf_tmpZhostname_tmpZhostnameinfoinfoZnetworkinfovals r) /usr/lib/python3.6/hardware.pyfindHostByRoute&