
    4Z0i                     N   d dl Z d dlZd dlmZ d dlmZmZmZmZmZ d dl	m
Z
mZ d dlmZmZ  ee          Zdej        d<    e j        e j        d	            e j        d
          Z ej        d          ZdedefdZe                    ddg          d             Ze                    ddg          d             Ze                    ddg          d             Ze                    ddg          d             Zedk    re                     ddd           dS dS )    N)datetime)Flaskrender_templaterequestredirecturl_for)DictTuple)check_all_dns_securitycalculate_total_scoreFDEBUGz%%(asctime)s %(levelname)s %(message)s)levelformat
dnsentinelz;^(?=.{1,253}$)(?!-)(?:[A-Za-z0-9-]{1,63}\.)+[A-Za-z]{2,63}$domainreturnc                     | sdS |                                                                  }t          t                              |                    S )NF)striplowerboolDOMAIN_REGEXmatch)r   ds     /var/www/html/main.pyis_valid_domainr      sD     uA""1%%&&&    /GET)methodsc                  T    t          j                    j        } t          d|           S )N
index.htmlcurrent_year)r   nowyearr   r"   s    r   indexr&      s#    <>>&L<lCCCCr   z/searchPOSTc                     t          j                    j        } 	 t          j                            dd                                          }|rt          |          st          d| d          dfS t          |          }d|v ra|d         }t                              d|                    d	                     t          d
|i dd| |                    d	                    dfS t          |          }|d         }|d         }|d         }t          d
||||||           S # t          $ r_}t                              d|           t          d
t          j                            dd          i ddd| d|           dfcY d }~S d }~ww xY w)Nr    r!   z'Domaine invalide. Exemple : example.comr#   error  FATAL_ERROR FATAL ERROR from dns_checker: %sdetailreport.htmlr   d   r   resultsscore	max_scorer#   r+     r4   r5   colorr   r3   r4   r5   score_colorr#   z*Erreur critique lors de l'analyse DNS : %sN/Aredz(Erreur critique lors de l'analyse DNS : r   r3   r4   r5   r9   r#   r+   r   r$   r%   r   formgetr   r   r   r   loggerr+   r   	Exception	exception)	r#   r   r3   fatal
score_datatotal_scorer5   r9   excs	            r   searchrG   !   s   <>>&L+\!!(B//5577 	B_V44 	B"<lR{|||  B  B  B )00G##M*ELL;UYYx=P=PQQQ"=*0+-)*-00<).8)<)<> > > @CC C +733
 ){+	 ) }&,'.%0)2+6,8: : : 	:  	\ 	\ 	\EsKKK}&-l&6&6x&G&G')%&),+0,8%UPS%U%UW W W Y\\ 	\ 	\ 	\ 	\ 	\ 	\	\s,   AD" 1A3D" %<D" "
F,AF FFz/recheck_dkimc                     t          j                    j        } 	 t          j                            dd                                          }t          j                            dd                                          }|rt          |          st          d| d          dfS |st          d|i d	d
| d          dfS t          ||          }d|v ra|d         }t                              d|                    d                     t          d|i d	d
| |                    d                    dfS t          |          }|d         }|d         }|d         }t          d||||||           S # t          $ r_}	t                              d|	           t          dt          j                            dd          i d	d
d| d|	           dfcY d }	~	S d }	~	ww xY w)Nr   r)   new_dkim_selectorr!   zDomaine invalide.r*   r,   r0   r   r1   u   Sélecteur DKIM manquant.r2   )dkim_selectorr-   r.   r/   r6   r4   r5   r7   r8   u5   Erreur critique lors de la re-vérification DKIM : %sr:   r;   u3   Erreur critique lors de la re-vérification DKIM : r<   r=   )
r#   r   selectorr3   rC   rD   rE   r5   r9   rF   s
             r   recheck_dkimrL   Q   su   <>>&L2g!!(B//5577<##$7<<BBDD 	l_V44 	l"<lRefffhkkk 	K"=*0+-)*-00<)DF F F HKK K )xHHHG##M*ELL;UYYx=P=PQQQ"=*0+-)*-00<).8)<)<> > > @CC C +733
 ){+	 ) }&,'.%0)2+6,8: : : 	:  	g 	g 	gPRUVVV}&-l&6&6x&G&G')%&),+0,8%`[^%`%`b b b dgg 	g 	g 	g 	g 	g 	g	gs2   BE0 #E0 =A5E0 3<E0 0
G:AGGGz/healthc                      dS )N)OK    rP   r   r   healthrQ      s    9r   __main__z0.0.0.0i  T)hostportdebug)!loggingrer   flaskr   r   r   r   r   typingr	   r
   dns_checkerr   r   __name__appconfigbasicConfigINFO	getLoggerr@   compiler   strr   r   router&   rG   rL   rQ   runrP   r   r   <module>re      s    				       D D D D D D D D D D D D D D         F E E E E E E E eHoo
7   ',/V W W W W		<	(	( rzXYY'C 'D ' ' ' ' 3  D D ! D 9vh''-\ -\ ('-\^ ?VH--4g 4g .-4gn 9ug&&  '& zGGTG22222 r   