Python: TCP / IP Soket İstemcisi, oturum açma paketi nasıl gönderilir?


0

Bir oyun sunucusuna oturum açma / katılma paketlerini göndermek için bir bot oluşturmak istedim. Bu yüzden katılacak ve sohbete bir şeyler yazmak için daha fazla paket gönderecek, ancak bunun nasıl yapılacağından emin değilim. Biri bana yardım edebilseydi, onu çok fazla değerlendirirdim!

Bu şimdiye kadar aldığım kod:

import socket

# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Connect the socket to the port where the server is listening
server_address = ('79.133.198.11x', 23073)
sock.connect(server_address)

# Trying to send something
PACKET = "Hello World!".encode('utf-8')
sock.send(PACKET)

# Close connection
sock.close()

Bilginize, denemek için seçtiğiniz oyun eski bir 2d oyun çekim "Soldat" dir. Ayrıca, birisi bana wireshark veya biraz paket dinleyicisi kullanabileceğimi söyledi, ancak koda ne şekilde koyacağı ve nasıl gönderileceği hakkında hiçbir fikrim yok.

-

EDIT: Wireshark'ı yükledim ve sunucuya bağlanırken port 23073'i dinledim ve bana şu verileri verdim (UDP protokolü):

0e: E9: 6e: 00: 31: 2e: 36: 2e: 38: 4d: 61: 6a: 6f: 72: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 00: 0b: 32: 31: 45: 39: 33: 35: 42: 41: 44: 37: 30: 00

Bunu koda nasıl uygulayabilir ve bu paketi kurulan bağlantıya nasıl gönderebilirim?


UDP segmentiniz dizeleri içeriyor en, 1.6.8Major, ve 21E935BAD70, muhtemelen dilinizi, sürümünüzü ve seri numaranızı temsil eder, ancak geri kalanı boştur. rapidtables.com/convert/number/hex-to-ascii.htm
Frank Thomas

Evet, haklısın. Seçtiğim dil, üzerinde bulunduğum oyun sürümü, adım ve son bölümden emin değilim. Ama ne tür bir sistem kullandıklarına dair hiçbir fikrim yok, sadece giriş yapmak ve sohbet edebilmek için bir bot yapmak istedim. Paket kullanmadan başka bir yolu olur mu?
Exid

Ayrıca, kodunuzun TCP için olduğuna da dikkat edin. veya bunu kontrol etmek istediğiniz UDP: wiki.python.org/moin/UdpCommunication
Frank Thomas

Teşekkürler, şimdi bakıyorum. Öyleyse, eğer bu verileri gönderirsem, belki de önce benim iletmem gereken bir çeşit kimlik doğrulama sistemine sahipsem, çalışabilir miyim? Oyun tho herhangi bir giriş gerektirmez.
Exid

1
peki, ilk bayt boş gibi bir ascii "Shift Out" karakteri (0x0e) olmalı, ama evet, doğru görünüyor. HEX’de aynı olduklarını doğrulamak için göndermeyi deneyin ve tel bandındaki segmenti gözlemleyin.
Frank Thomas

Yanıtlar:


0

Giriş paketi gibi bir şey yoktur. Paketler Uygulama Protokolü komutları içerir, böylece giriş bilgilerini içeren bir paketin içeriği, uygulama protokolünü uygulayan sistem tarafından tanımlandığı şekilde tanımlanır. Örneğin, HTTP uygulama protokolü için komutlar: http://papa.det.uvigo.es/~theiere/cursos/Curso_WWW/codes.html

Kimlik doğrulama sistemi ve kullanılan protokolleri bilmeden, geçerli komut dizileri içeren paketler yazmak mümkün olmayacağından, giriş yapmak istediğiniz sistem hakkında daha fazla bilgi edinmek zorunda kalacaksınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.