<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
mi`                 @   s   d Z ddlmZmZmZmZ ddlZddlZddlZddlm	Z	 ddl
Z
e
jdddZeedshej
e_ejZyddlZW n ek
r   dZY nX d	d
 Zdd Zdd ZdS )z1Used to read hardware info from kudzu, /proc, etc    )gethostnamegetaddrinfoAF_INETAF_INET6N)configzrhn-client-toolsT)Zfallbackugettextc              C   sB  t j } t j }ddd}d}d}d}x|D ]}|jdd }|jdd }|| }	xttfD ]}
ytj|
}W n tjk
r   wbY nX | d	 rt j }|jd\}}	t	|	}	yR|j
d
 |j||	f |j d }|
tkr|}n|}tj|}||kr|}W n" tjk
r(   |j  wbY nX |j  qbW q.W tjjdrtjdtjrtddj }x|D ]}t|s~ql|j }qlW ntjjdr tjdtjr tddj }xd|D ]\}t|sҐq|jd}t|dkrq|d j dkrdj|dd jd}P qW |dks4|dkr8d}|||fS )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   )ZhttpsZhttpN/   :r   ZenableProxy   z/etc/hostnamerz/etc/sysconfig/network=   ZHOSTNAME z"' 	
zlocalhost.localdomainunknown)r   initUp2dateConfigZgetServerURLsplitr   r   socketerrorZgetProxySettingintZ
settimeoutZconnectZgetsocknamegetfqdncloseospathisfileaccessR_OKopen	readlineslenstripjoin)cfgZslsthostnameZintfZintf6Z	serverUrlZserverZ
servertypeZportZfamilysZserver_portZintf_tmpZhostname_tmpZhostnameinfoinfoZnetworkinfovals r)   /usr/lib/python3.6/hardware.pyfindHostByRoute&   sj    








r+   c              C   s.  i } d| d< t  \| d< | d< | d< | d dkrRt | d< d| d krRtj | d< | d d kry4t| d d }tdd	 |}|d
 d d
 | d< W n   d| d< Y nX | d d kry4t| d d }tdd	 |}|d
 d d
 | d< W n   d| d< Y nX | d d krd| d< | d d kr*d| d< | S )NZNETINFOclassr%   ZipaddrZip6addrr   .c             S   s   | d t jkS )Nr   )r   r   )xr)   r)   r*   <lambda>   s    zread_network.<locals>.<lambda>r      z	127.0.0.1c             S   s   | d t jkS )Nr   )r   r   )r.   r)   r)   r*   r/      s    z::1r   )r+   r   r   r   r   filter)ZnetdictZlist_of_addrsZ
ipv4_addrsZ
ipv6_addrsr)   r)   r*   read_networkr   s4    
r2   c           
   C   sT   g } t j }|d sPyt }|r*| j| W n"   ttdtj d  Y nX | S )NZskipNetworkz%Error reading networking information:r   )r   r   r2   appendprint_sysexc_info)Zallhwr#   retr)   r)   r*   Hardware   s    r9   )__doc__r   r   r   r   r   r   r6   Zup2date_clientr   gettextZtranslationthasattrr   r5   ZlocaleImportErrorr+   r2   r9   r)   r)   r)   r*   <module>   s"   

L%