Your IP : 216.73.216.101


Current Path : /opt/sharedrads/__pycache__/
Upload File :
Current File : //opt/sharedrads/__pycache__/vhost_data.cpython-313.pyc

�

iXMjM���SrSSKrSSKrSSKrSSKrSSKJr SSKr\R"\	5r
SrSrSSjr
SSjrSrS	r\	S
:Xa\"5 gg)
z)Gather important VirtualHost information.�N)�ArgumentParserzDaniel Kzdanielk@inmotionhosting.comc���Uc[R"5Sn/n[R"S5n[R
R
U5(Ga�[USS9n0n/US'UGH�nURU5nSU;dMSU;a&S	U;aS
U;aURU5 0n/US'MIUb*URS	5US	'URS
5US
'MvSU;a'USRUR5S5 M�S
U;aPUR5nURSS5SR5HnUSRU5 M M�SU;a3SU;a/US'USRUR5S5 GM2SU;aUR5SUS'GMQSU;aUR5SUS'GMpSU;aUR5SUS'GM�SU;dGM�UR5SUS'GM� SSS5 U$U$![a  [RS5 SSS5 gf=f!,(df   U$=f)z7Collect necessary information from VirtualHost entries.N�apache_confzD<VirtualHost (?P<ip>[0-9.]+):(?P<port>[0-9]+)( ([0-9.]+):([0-9]+))*>zutf-8)�encoding�	hostnames�#z/VirtualHost�ip�port�
ServerName��ServerAlias� �Include�includes�SSLCertificateFile�ssl�SSLCertificateKeyFile�key�SSLCertificateChainFile�ca�DocumentRoot�docrootzError reading file)�envinfo�get_data�re�compile�os�path�exists�open�search�append�group�split�strip�OSError�LOGGER�error)�conf�
vhost_list�vhost_rx�file_handle�
vhost_data�line�vhost_match�hosts        �/opt/sharedrads/vhost_data.py�get_vhost_listr2sR���|����!�-�0���J��z�z�O��H�
�w�w�~�~�d���
�$��
)�[��J�&(�J�{�#�"
�'�D�"*�/�/�$�"7�K��$��)�T�1�#�z�1�#)�Z�#7�$.�$5�$5�j�$A�)+�J�68�J�{�3�(�4�/:�/@�/@��/F�J�t�,�1<�1B�1B�6�1J�J�v�.�)�T�1�&�{�3�:�:�4�:�:�<��?�K�*�d�2�#'�:�:�<�D�(,�
�
�3��(:�1�(=�(C�(C�(E�� *�;� 7� >� >�t� D�)F�&�$�.�)��;�9;�
�:� 6�&�z�2�9�9�$�*�*�,�q�/�J�1�T�9�04�
�
��Q��J�u�-�4��<�04�
�
��Q��J�u�-�6�$�>�/3�z�z�|�A��J�t�,�+�t�3�48�J�J�L��O�J�y�1�=(�	*�N��:���	�
����1�2��K*�
)�F
��G*�
)�N��s7�#I�,H.�E6H.�H.�.I�
I�I�I�
I*c�^�Uc
[5n/nUH.nUb
X%S;dMUb
X5S;dMURU5 M0 [U5S:Xa2UH,nUb
X%S;dMSUS;dMURU5 M. [U5S:XaUS$UHnXS;dM
Us $ g)z@Search vhost_list for first matching entry for given informationNr	r
r�*rr)r2r"�len)r*r0�
ip_addressr
�working_listr-s      r1�search_vhost_listr8Is�����#�%�
��L� �
���J�T�2B�$B���$�V�*<�"<��#�#�J�/�!�
�<��A��$�J��"�
��6F�(F��*�V�,�,� �'�'�
�3�%�
�<��A���!�}��"�
��k�*�*���#��c��[[S9nURS5nUR5nUR	SSSSS9 UR	SS	SSS9 UR	S
S[
SS
S9 URS5nUR	SS[
SSS9 UR5nUR	SS[
SSS9 UR	SS[
SSS9 UR	S[
SS9 UR
5nUR(aSnOUR(aSnOSnXeRURURUR4$)zParse command line aruments)�descriptionzOutput optionsz-dz--documentroot�
store_truezOutput only the document root.)�action�helpz-jz--jsonz-cz--configNz*Location of a custom Apache configuration.)�type�defaultr>zSearch optionsz-iz--ipz
IP to search.z-pz--portzPort to search.z-sz--standardportsz1Try port 443 first, and if no entry, try port 80.�hostnamezHostname to search.)r?r>r�json�standard)
r�__doc__�add_argument_group�add_mutually_exclusive_group�add_argument�str�
parse_args�documentrootrBr	r
rA�config)�parser�output_parser_group�output_group�search_group�
port_group�args�outputs       r1rIrIfsz����
0�F� �3�3�4D�E��&�C�C�E�L�������
-�	��������
-�	�������
��
9����,�,�-=�>�L�����f�3��?����:�:�<�J�����h�S�$�5F��������
��
@������j�s�9N��O�����D������	
��������7�7�D�I�I�t�}�}�d�k�k�A�Ar9c	�$�[5upp#n[U5n[XSX5nUc[S5 gUS:Xa[US5 gUS:Xa![[R
"USSSS95 g[S	U-5 [S
R
USUS55 [S
US-5 SU;a9[SUS-5 [SUS-5 SU;a[SUS-5 SU;aUSHn[SU-5 M gg)zMain function for scriptNzNo results foundrrBT�)�,z: )�	sort_keys�indent�
separatorszHostname: %szIP/port: {}:{}r	r
zDocument Root: %srzSSL Certificate: %szSSL Private Key: %srrzSSL CA Bundle: %srzInclude: %s)rIr2r8�printrB�dumps�format)rRr6r
r0r)r*r-rs        r1�mainr\�s%��.8�\�*�V��T���%�J�"�:�Z�F�J���
� �!�	�9�	�
�j��#�$�	�6�	�
��J�J��d�1��
�	
�	�n�t�#�$�
��%�%�j��&6�
�6�8J�K�L�
�!�J�y�$9�9�:��J���'�*�U�*;�;�<��'�*�U�*;�;�<��z�!��)�J�t�,<�<�=���#�"�:�.���m�d�*�+�/�$r9�__main__)N)NNN)rDrrrB�logging�argparserr�	getLogger�__name__r'�
__author__�	__email__r2r8rIr\�r9r1�<module>res`��/�	�	���#��	�	�	�8�	$��
�
�)�	�4�n�:=B�@,�@�z���F�r9