Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- # Funkcja do wczytywania danych z wielu plików i wyodrębnienia unikalnych adresów IP z informacjami o pochodzeniu
- def load_data(filenames):
- ip_data = {}
- for filename in filenames:
- file_type = filename.split('.')[0]
- try:
- with open(filename, 'r') as file:
- for line in file:
- parts = line.split('|')
- ip_port = parts[0]
- ip = ip_port.split(':')[0]
- port = ip_port.split(':')[1]
- if ip not in ip_data:
- ip_data[ip] = {'port': port, 'source': file_type}
- elif file_type == 'http' and ip_data[ip]['source'] != 'http':
- # Prefer HTTP data if available
- ip_data[ip] = {'port': port, 'source': file_type}
- print(f"Plik '{filename}' został prawidłowo wczytany.")
- except FileNotFoundError:
- print(f"Błąd: Nie znaleziono pliku '{filename}'.")
- print(f"Wyodrębniono {len(ip_data)} unikalnych adresów IP z plików.")
- return ip_data
- # Funkcja do wykonywania zapytań do API i przetwarzania odpowiedzi
- def query_and_process(ip_data):
- valid_ips = {}
- total_ips = len(ip_data)
- for index, (ip, info) in enumerate(ip_data.items(), 1):
- print(f"Wykonuję zapytanie dla IP: {ip} (Pozostało zapytań: {total_ips - index})")
- response = requests.get(f'https://bot.ircnet.info/api/i-line?q={ip}')
- if response.status_code == 200:
- data = response.json()
- servers = [srv['serverName'] for srv in data['response'] if not srv['sid'].startswith('0PN')]
- if servers:
- valid_ips[ip] = {'port': info['port'], 'source': info['source'], 'servers': servers}
- return valid_ips
- # Funkcja do zapisywania wyników do pliku
- def save_results_to_file(valid_ips):
- with open('output.txt', 'w') as file:
- for ip, info in valid_ips.items():
- # Usunięcie białych znaków z końca każdego serwera przed złączeniem
- cleaned_servers = [srv.strip() for srv in info['servers']]
- file.write(f"{info['source']} {ip} {info['port']} {' '.join(cleaned_servers)}\n")
- print("Wyniki zostały zapisane do pliku 'output.txt'.")
- # Główny przepływ programu
- def main():
- print("Uruchomiono program.")
- filenames = ['http.txt', 'socks4.txt', 'socks5.txt'] # Nazwy plików z danymi
- ip_data = load_data(filenames)
- if ip_data:
- valid_ips = query_and_process(ip_data)
- save_results_to_file(valid_ips)
- else:
- print("Przerwano działanie programu z powodu błędu.")
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement