EVOLUTION-NINJA
Edit File: forticlient_helper.cpython-36.pyc
3 q��i� � @ s@ d dl Z d dlmZ d dlZeeed�dd�ZG dd� d�ZdS )� N)�path)� ems_serial�environment�returnc C s: t jd�}|j| j� � |j|j� � |j� dd� }|S )zO Calculate a new customer key based on the ems_serial and environment. �sha256r � )�hashlib�new�update�encode� hexdigest)r r Zhasher�customer_key� r �//usr/lib/fm-agent/library/forticlient_helper.py�calculate_customer_key s r c @ s4 e Zd ZdZdZdd� Zdd� Zdd� Zd d � ZdS )�ForticlientHelperz7/Library/Application Support/Fortinet/FortiClient/data/z@/Library/Application Support/Fortinet/FortiClient/conf/vpn.plistc C s ddd�| _ tj� | _d S )NZforticlient_serialr )zfct_uid.confzEMS_sn.conf)�data_files_map�logging� getLogger�log)�selfr r r �__init__ s zForticlientHelper.__init__c C s� y�dd l j}|j|�}|jdkr.|jd| �}|j}y|jd�}|d|� }W n Y nX |j� jd�}t|�dk rzd S |d }|d }|d } t|�d kr�|d } n|d } |dkr�|d kr�| dkr�| S d S d S d S )Nr � zhttp://�:�.� � � � � � ZcomZ fortisase�edge���������������) �urllib.parse�parse�urlparse�scheme�netloc�index�lower�split�len)r �urlr) Zparsed�host�idxZ host_partsZ top_level�domainr r! r r r � parse_address s2 zForticlientHelper.parse_addressc C sn dd l }t| jd��H}|j|�}x6|d j� D ]&}|jdd �}|r.| j|�}|r.|S q.W W d Q R X td��d S )Nr �rbZProfilesZServerzNo environment profile found)�plistlib�open�vpn_data�load�values�getr4 � Exception)r r6 �f�dataZprofileInfo�server_name�envr r r �get_vpn_environmentF s z%ForticlientHelper.get_vpn_environmentc C s� t j| j�std��i }d}x^| jj� D ]P\}}|d7 }tt j| j|�d��&}|j� j � }t |�dkrn|||<