-
Notifications
You must be signed in to change notification settings - Fork 0
/
website_scanner.py
66 lines (56 loc) · 2.1 KB
/
website_scanner.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import requests
import argparse
from bs4 import BeautifulSoup
import subprocess
def get_server_version(url):
try:
response = requests.head(url)
server_version = response.headers.get('Server')
return server_version
except Exception as e:
print(f"Error: {e}")
return None
def get_php_version(url):
try:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Replace the following line with your specific logic to extract PHP version
# This is just an example, and you might need to adjust it based on the website's structure
php_version = soup.find('meta', {'name': 'generator'}).get('content')
return php_version
except Exception as e:
print(f"Error: {e}")
return None
def nmap_scan(url):
try:
result = subprocess.run(['nmap', '-F', url], capture_output=True, text=True)
if "Nmap done" in result.stderr:
# No open ports found
return "No open ports found."
else:
return result.stdout
except Exception as e:
print(f"Error: {e}")
return None
def main():
parser = argparse.ArgumentParser(description="Website Scanner")
parser.add_argument('-s', '--site', help='Website URL', required=True)
parser.add_argument('-sv', '--server', action='store_true', help='Get server version')
parser.add_argument('-p', '--php', action='store_true', help='Get PHP version')
parser.add_argument('-a', '--all', action='store_true', help='Get all information')
args = parser.parse_args()
site_url = args.site
if args.server or args.all:
server_version = get_server_version(site_url)
if server_version:
print(f"Server Version: {server_version}")
if args.php or args.all:
php_version = get_php_version(site_url)
if php_version:
print(f"PHP Version: {php_version}")
if args.all:
nmap_result = nmap_scan(site_url)
if nmap_result:
print(f"Nmap Scan Results:\n{nmap_result}")
if __name__ == "__main__":
main()