IPs Classfull
Publicado por Rafael Iguatemy (última atualização em 11/05/2012)
[ Hits: 6.421 ]
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)
auth_ig.py: Script para autenticação do IG
Shell reverso completo - servidor
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
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Assisti Avatar 3: Fogo e Cinzas (3)
Conky, alerta de temperatura alta (8)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









