HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //proc/self/root/lib/fm-agent/library/__pycache__/inspector.cpython-39.pyc
a

��i�?�@s.ddlmZddlZddlZddlZddlZddlZddlZzddlZWnddlm	ZYn0zddl
Z
WndZ
Yn0zddlZWndZYn0zddlZWn6e
y�zddlZWne
y�dZYn0Yn0dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�ZGdd�de�ZdS)�)�datetimeNccs<tjddkrt}nt}|d�D]}|d@V|dL}q dS)Nr����)�sys�version_infoZxrange�range)�n�rng�i�r
�&/usr/lib/fm-agent/library/inspector.py�mac_address_octets%s
rcCs dd�t|�D�}d�t|��S)zw
    Expresses a decimal integer in standard MAC address format
     ex:
     7267271067680 -> '06:9c:0b:1c:48:20'
    cSsg|]}d|�qS)z%02xr
)�.0�ar
r
r�
<listcomp>7�z&int_to_mac_address.<locals>.<listcomp>�:)r�join�reversed)r
�valuesr
r
r�int_to_mac_address1srcCs,t��}dtjkr(|���d�r(t��}|S)N�darwinz.arpa)�socket�getfqdnr�platform�lower�endswith�gethostname)�hostnamer
r
r�get_fqdn;s

r!cCsNdtjkrdSz,tjddd�}t�d�|��\}}|��WSYdS0dS)NrZscutilT)�excz{} --get ComputerName)rr�
agent_util�which�execute_command�format�strip)Zsc_util�_�outputr
r
r�get_server_nameHs

r*c
Cs�t�d�}tj��}dtj��i}d|kr�z\t�d�}t�d�|��\}}d|krt|�	��
d�d�	��	d	�|d
<n|�d�|��Wn8ty�}z |�
d�t|���WYd}~n
d}~00|S)
N�	InspectorrrZioregz6{} -d2 -c IOPlatformExpertDevice | grep IOPlatformUUIDr�=��"�uuidzioreg error: {}zGather UUID failure: {})�logging�	getLoggerrrrr#r$r%r&r'�split�error�	Exception�info�str)�logZmy_platform�rvZ	ioreg_bin�rcr)�er
r
r�get_platform_uuidsXs$


��"r;ccsJtrFt����D]4\}}|D]&}|jtjkr.q|jdkr:q|jVqqdS)Nz00:00:00:00:00:00)�psutilZnet_if_addrs�items�familyZAF_LINK�address)Ziface�addrs�addrr
r
r�mac_address_iterqs
rBc
Cs�dgi}zddl}t|���|d<Wn8ty\}z t�|�t�d�WYd}~n
d}~00z&tt��D]\}}|d�	|�qjWnRt
y�t�d�Yn8ty�}z t�|�t�d�WYd}~n
d}~00|S)NZ
macaddressrZuuid_getnodezCUnable to import uuid module. Skipping MAC address fact collection.z=Unable to import psutil, skipping MAC address fact collectionz+Unknown error during MAC address collection)r/rZgetnoder4r0�warningr5�	enumeraterB�append�ImportError)�factsr/�errrZmac_addrr
r
r�get_mac_addresses|s$
�
 rIc@s�eZdZddgZdZdd�Zd!dd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zd"dd�Zdd�Zdd �ZdS)#r+z/etc/apt/sources.listz/etc/yum.repos.d/panopta.repozhttp://packages.panopta.com/cCs
||_dS)N)�agent)�selfrJr
r
r�__init__�szInspector.__init__Nc
Cs�i}t�d�}z�|�|���|�|���|�|���|�t��|�|���|�|���|�|�	��|�|�
��|�|���|�|�|��|�|�
��tjdkr�|�|���Wn4ty�}z|�d�|��WYd}~n
d}~00|S)Nr+)rrrzget_all facts: {})r0r1�update�get_agent_facts�get_python_facts�get_process_factsrI�get_hardware_facts�get_time_facts�get_hostname�get_platform_facts�get_machine_facts�get_wifi_facts�get_dem_network_factsrr�get_cloud_factsr4r5r&)rK�	wifi_inforGr7r:r
r
r�
get_all_facts�s&

&zInspector.get_all_factscCsLi}dtjkrHz,t�d�\}}|�d�d��}||d<WnYn0|S)Nrzsw_vers | grep ProductVersionrr-ZMacOSVersion)rrr#r%r2r')rKrGr(r)�pvr
r
rrT�s
zInspector.get_platform_factscCsi}t�|d<|S)Nr )r!�rKrGr
r
rrS�s
zInspector.get_hostnamecCsdi}z6t�d�\}}d�|���d�dd��}||d<Wn$t�|jj�}|�	d�Yn0|S)Nzls -l /etc/localtime�/����timezonezUnable to get Time Zone)
r#r%rr'r2r0r1�	__class__�__name__�	exception)rKrG�retcoder)r_r7r
r
rrR�szInspector.get_time_factsc
CsJdii}dtj��kr�zht�d�\}}|���d�D]F}z0|���dd�\}}|dvrf|��|d|<Wq4Yq4Yq40q4Wn$t�|j	j
�}|�d�Yn0z$t�
d	�t�
d
�}||dd<Wn$t�|j	j
�}|�d�Yn0�nTz�t�d
�\}}|���d�D]b}z|���dd�\}}WnY�qYn0|�����dd��dd�}|��}||d|<�qWn$t�|j	j
�}|�d�Yn0z�t�d�\}}|���d�D]b}|����}	|	d���d��r�t|	d�|dd<|	d���d��r�t|	d�|dd<�q�Wn$t�|j	j
�}|�d�Yn0|S)z=
        Gather CPU and memory specs for the machine
        �hardwarerzsysctl -a | grep machdep.cpu�
rr-)zmachdep.cpu.brand_stringzmachdep.cpu.core_countz Unable to get CPU hardware facts�
SC_PHYS_PAGES�SC_PAGE_SIZEZ	mem_totalz#Unable to get memory hardware factsZlscpuz(s)�� r(zfree -mrZmemZswapZ
swap_total)rrrr#r%r'r2r0r1r`rarb�os�sysconf�replace�
startswith�int)
rKrGrcr)�line�key�valuer7Z	total_mem�fieldsr
r
rrQ�s^�zInspector.get_hardware_factscCs�i}tj�tj�t��|d<tj�|jj�|d<d|d<|jD]R}tj�|�r>z4t	|�}|j
|��v|d<|��|dr�Wq�Wq>Yq>0q>d}dt
jks�tj�d�r�d}||d	<|S)
NZinstalled_timeZ
used_manifestFZinstalled_from_repoZpanoptarz
/etc/fm-agentZfortimonitorZagent_brand)rj�path�getctime�abspath�__file__�existsrJ�
manifest_file�SOURCE_LIST_PATHS�open�PANOPTA_REPO�read�closerr)rKrGZsource_list_pathZsource_list�brandr
r
rrNs(
�
zInspector.get_agent_factscCs�dii}t��|dd<t��|dd<t��|dd<t��|dd<zt��|dd<Wn,ty�tr�d�t���|dd<Yn0t	j|dd<|S)	N�pythonr�	processor�version�uname�distriZsys_platform)
rr��python_versionr�r��AttributeError�distrorZlinux_distributionrr\r
r
rrO,szInspector.get_python_factscCs
i}z`tjddd�}|�dd�|��}|jdkrbt�|���}d|d<|d	|d
<||d<|WSWnYn0�zdd
i}tjddd�}|jdd|d�|��}|jdk�rvt�|���}d|d<|d|d
<d|vr�|d=|�di��	�D]\}}|dvr�|d�
|�q�||d<z*|j��}|�dd�dk}	|	|dd<Wn,t
�ynt�|jj�}
|
�d�Yn0|WSWnYn0zrddi}tjddd�}|jdd|d�|��}|jdk�r�t�|���}d|d<|dd|d
<||d<|WSWnYn0iS)Nz169.254.169.254�)�timeout�GETz*/latest/dynamic/instance-identity/document��ZawsZcloud_providerZ
instanceIdZcloud_instance_idZcloud_metadatazMetadata-FlavorZGooglezmetadata.google.internalz,/computeMetadata/v1/instance/?recursive=true)�headersZgcp�idZserviceAccounts�
attributes)z
/attributez/sshkeysz
/vmdnssettingz/enable-osloginrJZenable_gcp_attributes�truezBUnable to parse manifest file to determine gcp attributes actions.ZMetadataz)/metadata/instance?api-version=2017-04-02ZazureZcomputeZvmId)�httplib�HTTPConnection�request�getresponse�status�json�loadsr|�getr=�poprJ�get_manifestr4r0r1r`rarb)rKrG�h�r�datar�rprq�manifestZenabled_gcp_attributesr7r
r
rrX>sx

�
���

�
zInspector.get_cloud_factscCsBi}tdur|St�}t��D]}|�|���qt|�|d<|S)N�	processes)r<�setZprocess_iter�add�name�list)rKrGr��procr
r
rrP�szInspector.get_process_factscCsvi}dtjkr|Sd|i}zBd}|�|�}|rZ||d}|�dd�|d<|�dd�|d	<Wn|��Yn0|S)
NrZmachine_descriptionZSPHardwareDataTyperZ
serial_numberrh�serialZ
machine_modelZmodel)rr�query_system_profilerr��clear)rK�mdrG�tkr�r5r
r
rrU�s

zInspector.get_machine_factscCs�i}d|i}zT|�dd�|d<|�dd�|d<|�dd�|d<|�dd�|d	<|�d
d�|d<Wn|��Yn0t����|d<|S)
NZDEMWifiInfoZSSIDrhZssidZBSSIDZbssidZchannelz	link authZsecurity_algorithmZNSSZnss�	timestamp)r�r�r�utcnowr�)rKrYr�rGr
r
rrV�szInspector.get_wifi_factscCs�dtjkriSg}d|i}z�d}|�|�}|r�|�|g�}|D]t}|�di��dd�}|s\q>|�d�|�d�g|gd�}|�|�|�d	d�}	|	r>|	�d
g�D]}
|d�|
�q�q>Wnt�d�|��Yn0|S)
NrZ!DEMNetworkInterfaceConfigurationsZSPNetworkDataTypeZIPv4ZRouter�_namerd)r��description�dns_serversZgateways�DNSZServerAddressesr�rW)rrr�r�rEr0rbr�)rKr�rGr�r5Z
network_infosZniZrouter�itemZdns_info�sar
r
rrW�s6

�

zInspector.get_dem_network_factscCs`zBt�d�}ddlm}m}||d|g|d�}t�|j���}|WSt	�
d�YdS0dS)NZsystem_profilerr)�Popen�PIPEz-json)�stdoutr�)r#r$�
subprocessr�r�r�r�r�r|r0rb)rKZ	info_type�spr�r��dr�r
r
rr��s

zInspector.query_system_profiler)N)N)ra�
__module__�__qualname__ryr{rLrZrTrSrRrQrNrOrXrPrUrVrWr�r
r
r
rr+�s 
<!P

r+)rr#rrjrr0rr��http.client�clientr<r�r�rF�
simplejsonrrr!r*r;rBrI�objectr+r
r
r
r�<module>sB