Retornar valores em sockets

1. Retornar valores em sockets

Fabio Tavares Szescsik
fabioszescsik

(usa Outra)

Enviado em 27/09/2016 - 20:18h

Pessoal,

Preciso de uma ajuda. Estou conectando em um servidor via python e preciso retornar via socket o numero serial dele, mas não estou conseguindo.

O código que estou usando em Python, é o seguinte:

#!/usr/bin/python
import socket,os,commands,sys
ip = raw_input("Digite o IP ")
porta = input("Digite a porta ")
command="/usr/sbin/dmidecode -t 1"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

if s.connect_ex((ip,porta)):
print "Porta fechada"
else:
s.send(command)
response = s.recv(4096)
print s
sys.exit()

Alguém pode me ajudar?

Obrigado


  


2. Re: Retornar valores em sockets

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 27/09/2016 - 20:50h

fabioszescsik escreveu:

Pessoal,

Preciso de uma ajuda. Estou conectando em um servidor via python e preciso retornar via socket o numero serial dele, mas não estou conseguindo.

O código que estou usando em Python, é o seguinte:

#!/usr/bin/python
import socket,os,commands,sys
ip = raw_input("Digite o IP ")
porta = input("Digite a porta ")
command="/usr/sbin/dmidecode -t 1"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

if s.connect_ex((ip,porta)):
print "Porta fechada"
else:
s.send(command)
response = s.recv(4096)
print s
sys.exit()
Alguém pode me ajudar?

Obrigado


Sim este é o código cliente.
E o código servidor?
Posta aqui também pra poder ver como está tratando o comando recebido e fazendo a resposta.

Abraço



3. Re: Retornar valores em sockets

Fabio Tavares Szescsik
fabioszescsik

(usa Outra)

Enviado em 27/09/2016 - 21:34h

Então Lisandro, na verdade não tenho acesso ao servidor, a missão que me foi dada é conectar no servidor por meio de um IP e Porta, e retornar o numero de série desse servidor.

E tenho que fazer isso usando python. Por exemplo, eu sei que para resolver nome tem o socket.gethostbyname. Preciso de algo parecido que me retorne o numero de série...


4. Re: Retornar valores em sockets

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 27/09/2016 - 23:41h

Os módulos os e commands não estão sendo usados, então não necessitam ser importados para o código.
A variável command, ao meu ver, leva um comando que deverá ser executado pelo server e retorna envia a saída do comando de volta ao cliente no formato abaixo:

Ex:
# dmidecode x.xx
Getting SMBIOS data from sysfs.
SMBIOS x.x present.

Handle xxxxxx, DMI type x, xx bytes
System Information
Manufacturer: xxxxxx
Product Name: xxxx
Version: Lenovo xxxx-xx
Serial Number: 32JK3B2J4B42L4
UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Wake-up Type: Power Switch
SKU Number: xxxxx-xxxx-xxxx
Family: xxxxxx


Para deixar menos confuso o output do comando, adicione um filtro com o grep na variável command. O seu código
ficaria assim:

#!/usr/bin/python

import socket
import sys

ip = raw_input("Digite o IP ")
porta = input("Digite a porta ")
command="dmidecode -t 1 | grep 'Serial Number'"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

if s.connect_ex((ip, porta)):
print "Porta fechada"
else:
s.send(command)
response = s.recv(2048)
print s
sys.exit()



EDIT: O output sairia assim:
Serial Number: 0001200734RWQ 




______________________________________________________________________
OS: Kali Linux kali-rolling kali-rolling
Kernel: x86_64 Linux 4.6.0-kali1-amd64
Resolution: 2390x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB


5. Re: Retornar valores em sockets

Fabio Tavares Szescsik
fabioszescsik

(usa Outra)

Enviado em 28/09/2016 - 09:55h

Pessoal, não está funcionando. Ele retorna o serial number da minha máquina e não do servidor.
E ele está imprimindo o seguinte:

<socket._socketobject object at 0x7f5d7396f520>

Alguma outra dica?


6. Re: Retornar valores em sockets

Fabio Tavares Szescsik
fabioszescsik

(usa Outra)

Enviado em 28/09/2016 - 09:58h

Pessoal, agora funcionou. Pedi para ele imprimir a variável response.

Ai deu certo

VALEU!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts