IPs Classfull
Publicado por Rafael Iguatemy (última atualização em 11/05/2012)
[ Hits: 6.417 ]
Homepage: http://rafaeliguatemy.com.br
Este script recupera um ip digitado e sua másacara em notação "/x" e retorna seu endereço de rede, broadcast, total de hosts disponíveis, classe e tipo .
Futuramente será postado a versão classless.
#!/usr/bin/python
#-*-coding:iso-8859-1 -*-
########################################################################
########################################################################
### Script: IPs.py ###
### Versão: 1.0 Data:08/05/2010 ###
### Autor: Rafael Iguatemy dos Santos - rafael.dsantos@bol.com.br ###
###------------------------------------------------------------------------------------------------------------------------###
### Este script recupera um ip digitado e sua másacara em notação "/x" e retorna seu endereço de rede, ###
### broadcast, total de hosts disponíveis, classe e tipo ### ########################################################################
########################################################################
def verifica_ip(ip):
'''Verifica se o ip e valido e separa os octetos
'''
oct1,oct2,oct3,oct4 = "","","",""
ips = []
for i in range(len(ip)):
if ip[i] != '.':
oct1 += ip[i]
else:
ipr1 = ip[i+1:]
break
for j in range(len(ipr1)):
if ipr1[j] != '.':
oct2 += ipr1[j]
else:
ipr2 = ipr1[j+1:]
break
for w in range(len(ipr2)):
if ipr2[w] != '.':
oct3 += ipr2[w]
else:
oct4 = ipr2[w+1:]
break
if int(oct1) == 0 or int(oct1)>255 or int(oct2)>255 or int(oct3)>255 or int(oct1)>255 or len(ip)>15 or ip.count('.')!=3:
print "ip incorreto"
else:
ips.append(oct1)
ips.append(oct2)
ips.append(oct3)
ips.append(oct4)
return ips
def mascara(ip, mascara):
'''Esta função verifica a classe, tipo(Privado ou Público), endereço de rede, broadcast, mascara e quantidade de hosts disponíveis
'''
# Esta Variavel recupera a lista dos octetos
gera_ip = verifica_ip(ip)
# Este bloco verifica a classe IP
if int(gera_ip[0]) < 128:
classe = 'Classe A'
elif int(gera_ip[0]) < 192:
classe = 'Classe B'
elif int(gera_ip[0]) < 224:
classe = 'Classe C'
elif int(gera_ip[0]) < 240:
classe = 'Multicast'
elif int(gera_ip[0]) < 256:
classe = 'Reservados'
else:
classe = 'Inexistente'
# Bloco informa se o IP é Público ou privado
if (int(gera_ip[0]) == 10 and int(gera_ip[1]) in range(255)) or (int(gera_ip[0])==172 and int(gera_ip[1]) in range(16,32)) or (int(gera_ip[0])==192 and int(gera_ip[1]) == 68):
tipo = ' Ip : Privado'
else:
tipo = ' IP : Publico'
#bloco Informa endereço de rede, brosdcast e máscara
if mascara == '8':
endred = gera_ip[0]+".0.0.0"
endbrd = gera_ip[0]+".255.255.255"
print tipo
print classe
print 'Endereco de Rede : %s' % (endred)
print 'Endereco de Broadcast : %s' % (endbrd)
print 'Máscara : 255.0.0.0'
print 'Total de Hosts disponíveis : %d ' % ((2**(32 - int(mascara)))-2)
elif mascara == '16':
print tipo
print classe
endred = gera_ip[0]+"."+gera_ip[1]+".0.0"
endbrd = gera_ip[0]+"."+gera_ip[1]+".255.255"
print 'Endereco de Rede : %s' % (endred)
print 'Endereco de Broadcast : %s' % (endbrd)
print 'Máscara : 255.255.0.0'
print 'Total de Hosts disponíveis : %d ' % ((2**(32 - int(mascara)))-2)
elif mascara == '24':
endred = gera_ip[0]+"."+gera_ip[1]+"."+gera_ip[2]+".0"
endbrd = gera_ip[0]+"."+gera_ip[1]+"."+gera_ip[2]+".255"
print tipo
print classe
print 'Endereco de Rede : %s' % (endred)
print 'Endereco de Broadcast : %s' % (endbrd)
print 'Máscara : 255.255.255.0'
print 'Total de Hosts disponíveis : %d ' % ((2**(32 - int(mascara)))-2)
else :
print 'Esta versão os ips são classfull!!'
#bloco principal
ip = raw_input("Entre com o ip: ")
masc = raw_input("Entre com a máscara de rede (Notação /x : Somente o numero {8,16,24}) :")
mascara(ip,masc)
Script para Scanner servidor e encontrar portas abertas
Scanner Wifi in Python [very simple and helpful]
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (4)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (4)
Alguém executou um rm e quase mata a Pixar! (1)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









