3
@6^              $   @   s   d dl mZmZmZ ddgddgddgddgdd	gd
dgddgdddgdddgdddgddgdddgdgdgdddgddgddgdd
dgdddd	gddddgddd gdd!ddgdddgddgddgdgdgdgdgdgdgd gdgd gg d"#Zd#gd$d$d%d&gd'd(d$d)gd*ZG d+d, d,eZd-S ).    )
SpiderFootSpiderFootPluginSpiderFootEvent4svnxfwrdghjou1kilmp0qtea57yzcbvv)#r   r#   r"   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r    r!   r   r   23r   r   6r   8900Zl1l11111llZlllZ1l1)Zoor-   r,   c               @   sB   e Zd ZdZi Zi ZdZe fddZdd Z	dd Z
d	d
 ZdS )sfp_similarzSimilar Domains:Footprint,Investigate:DNS::Search various sources to identify similar looking domain names, for instance squatted domains.Nc             C   s>   || _ | j | _d| _x"t|j D ]}|| | j|< q$W d S )NDNS)sftempStorageresults__dataSource__listkeysopts)selfsfcuserOptsopt r;   6/var/www/spiderfoot.crq.systems/modules/sfp_similar.pysetupK   s
    
zsfp_similar.setupc             C   s   dgS )NDOMAIN_NAMEr;   )r7   r;   r;   r<   watchedEventsT   s    zsfp_similar.watchedEventsc             C   s   dgS )NSIMILARDOMAINr;   )r7   r;   r;   r<   producedEventsZ   s    zsfp_similar.producedEventsc             C   sL  |j }|j}|j}t }| jj|| jd }d|j|d d  }| jjd| d |  || j	krhd S d| j	|< d}xt|D ]l}	|	t
krq|tt
|	 dkrq||d }
x:t
|	 D ].}|d| | ||
t|  }|j| qW |d7 }q|W x:tD ]2}||krx$t| D ]}|j|j|| qW qW x*t
D ]"}	|j||	  |j|	|  q.W d}xD|D ]<}	|j|d| |	 |	 ||d t|   |d7 }q^W x|D ]}d}yl| jj|| rd}| jjd	| | rd}|r| jjd
| |  td|| | j|}| j| W n( tk
r@ } z
wW Y d d }~X nX qW d S )N_internettlds.   zKeyword extracted from z: Tr   Fzwww.z	Resolved r@   )	eventTypemoduledatar4   r0   domainKeywordr6   splitdebugr2   	nearcharslenappendpairsreplaceresolveHostr   __name__notifyListenersBaseException)r7   event	eventNamesrcModuleName	eventDataZdomlistdomtldposr"   nposZxcZnewdomr   r   r   resolvedevtr   r;   r;   r<   handleEvent^   s\    


 


.
zsfp_similar.handleEvent)rR   
__module____qualname____doc__r6   optdescsr2   dictr=   r?   rA   r_   r;   r;   r;   r<   r.   =   s   	r.   N)sflibr   r   r   rL   rO   r.   r;   r;   r;   r<   <module>   sN   



