3
@†6^*  ã               @   s0   d dl Zd dlmZmZmZ G dd„ deƒZdS )é    N)Ú
SpiderFootÚSpiderFootPluginÚSpiderFootEventc               @   sJ   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d„ ZdS )Úsfp_cleanbrowsingzsCleanbrowsing.org:Investigate,Passive:Reputation Systems::Check if a host would be blocked by Cleanbrowsing.org DNSNc             C   s8   || _ | jƒ | _x"t|jƒ ƒD ]}|| | j|< qW d S )N)ÚsfÚtempStorageÚresultsÚlistÚkeysÚopts)ÚselfÚsfcÚuserOptsÚopt© r   ú</var/www/spiderfoot.crq.systems/modules/sfp_cleanbrowsing.pyÚsetup   s    
zsfp_cleanbrowsing.setupc             C   s
   dddgS )NÚINTERNET_NAMEÚAFFILIATE_INTERNET_NAMEÚCO_HOSTED_SITEr   )r   r   r   r   ÚwatchedEvents'   s    zsfp_cleanbrowsing.watchedEventsc             C   s
   dddgS )NÚMALICIOUS_INTERNET_NAMEÚ!MALICIOUS_AFFILIATE_INTERNET_NAMEÚMALICIOUS_COHOSTr   )r   r   r   r   ÚproducedEvents-   s    z sfp_cleanbrowsing.producedEventsc             C   st   t jjƒ }ddg|_y"|j|ƒ}| jjdt|ƒ ƒ W n0 tk
rf } z| jjd| ƒ dS d }~X nX |rpdS dS )Nz185.228.168.168z185.228.168.169zAddresses returned: zUnable to resolve FT)	ÚdnsÚresolverÚResolverÚnameserversÚqueryr   ÚdebugÚstrÚBaseException)r   ÚqaddrÚresÚaddrsÚer   r   r   Ú	queryAddr1   s    


zsfp_cleanbrowsing.queryAddrc             C   sÌ   |j }|j}|j}|}d}| jjd| d | ƒ || jkr@d S d| j|< y| jj|ƒr\d}W n  tk
r~ } zd S d }~X nX |rÈ| j|ƒ}d| }	|dkr¢d}	|sÈt	|	d| d	 | j
|ƒ}
| j|
ƒ d S )
NFzReceived event, z, from TÚ
MALICIOUS_r   r   zBlocked by Cleanbrowsing.org [ú])Ú	eventTypeÚmoduleÚdatar   r    r   ÚresolveHostr"   r'   r   Ú__name__ÚnotifyListeners)r   ÚeventÚ	eventNameÚsrcModuleNameÚ	eventDataÚparentEventÚresolvedr&   ÚfoundÚtypÚevtr   r   r   ÚhandleEventA   s.    



zsfp_cleanbrowsing.handleEvent)r.   Ú
__module__Ú__qualname__Ú__doc__r   Úoptdescsr   Údictr   r   r   r'   r9   r   r   r   r   r      s   r   )Údns.resolverr   Úsflibr   r   r   r   r   r   r   r   Ú<module>   s   