Моя программа загружает список прокси (socks4) из txt-файла, подключается и отправляет буфер, а затем отправляет сам заголовок. В моем коде есть ошибка, и я не знаю где. Скорее всего, я не отправляю буфер правильно. html код сайта или recv в socks4 не выводится на консоль программы при отправке буфера.
Пожалуйста, помогите мне с моей ошибкой. Исправьте мой код: D
Я знаю, что есть библиотека PySocks. Но я не хочу его использовать. Не нужно писать о ней <3 </p>
Код Сорце:
import socket
import random
import time
ip2int = lambda ip: reduce(lambda a,b: long(a)*256 + long(b), ip.split('.'))
def haha():
global proxies
global ip
while(True):
try:
print("Creating socket..")
proxy = random.choice(proxies).split(":")
s = socket.socket()
s.settimeout(3)
print("Socket created!")
print("Connecting to socks4 proxy " + proxy[0] + ":" + proxy[1])
s.connect((proxy[0], int(proxy[1])))
print("Connected. Sending payload with ip " + ip)
payload = b"\x04\x01\x00\x50" + bytes(socket.htonl(ip2int( ip ))) + b"\x00"
s.sendall(payload)
print(repr(payload))
print("Payload sended. Getting info..")
print(s.recv(4096))
print("Sending header")
payload = "GET / HTTP/1.1\r\n"
payload += "Host: nodesdirect.com\r\n"
payload += "\r\n"
payload = payload.encode()
s.sendall(payload)
print(s.recv(4096))
print("Header sended! Close connection.. \n")
except Exception as e:
print(str(e) + "\n")
in_file = open("proxylist.txt", "r")
proxyf = in_file.read()
in_file.close()
proxies = proxyf.split('\n')
ip = socket.gethostbyname("nodesdirect.com")
print("\n"+str(len(proxies)) + ' proxies!\n')
haha()