epespad

Me programé algo para otra materia [Binario e IP's]

En este caso noté que algo podía hacer programando. Y encontré que uno puede hacer lo que se proponga.

Mi idea era la siguiente:

Hacer una estructura en la cual al ingresar los datos te resuelva un ejercicio de principio a fin.

Este es solo un "TEST", por lo cual el conocimiento adquirido (aunque no lo creas, se aprende experimentando) lo aplicaré en modificar mi programa y así mejorarlo.

He hecho varios programas ya y voy viendo en como mejorarlos y complementarlos.

En este simplemente tengo una dirección IP predefinida (tengo que evaluar como hacer para meter toda la dirección y pasarlo a binario).

El mayor problema que surge es que hay que hacer muchas variables. Algo que se puede ayudar uno con el struct. Lo implementé en otro programa.

Algunas imágenes de lo que hice:

Me programé algo para otra materia [Binario e IP's]

Programacion

redes

binario

pruebas

Próximante veré como poner una dirección IP completa y evaluar que datos arroja. También que el programa vea que tipo de clase es y en base a eso, que haga el procedimiento correspondiente.

Recordando que Clase A se toman los 3 bytes de Host, en la B, 2 bytes, y en la C que es este caso, tan solo 1 byte. Justamente hice el mismo ejercicio que tengo en el cuaderno.

Anyway, les recomiendo a todos que intenten hacer algo para facilitarse en sus estudios. Tiene muchas aplicaciones que hacer.

Hacen un solo programa bien completo y ya tendrán las respuestas a los ejercicios (para chequeo). Es una forma de autoayudarse.

Hay montones de funciones aritméticas como pow() ; sqrt() ; etc que están en la librería math.h

Espero que les haya gustado.

Modificaré el post para que luzca mejor luego, estoy con poco tiempo

En el próximo post explicaré como tener tu propio Theme tipo Hacker (hoy lo perdí por un error por culpa del Antivirus

aplicacion

PREVIEW :

materias

Me programé algo para otra materia [Binario e IP's] )

Comentarios Destacados

Jim_Keller +41
@Vinnu
if
{
vinnu pela OGT
}
for
{
banana = 1
}
if
vinnu pasa pack
}
then 10 puntos
iazaya_uchiha +6
@Vinnu

link: https://www.youtube.com/watch?v=OgIRAjnnJzI
Vinnu +2
@iazaya_uchiha ¿que carajos?

@ExDiamond
Sam_Houston +3
@iazaya_uchiha jaajaja parece propaganda de un grupo de programadores anonimos intentando superar la ansiedad social
MathurinMilan +24
C:/DOS
C:/DOS/RUN
RUN/DOS/RUN
AlkTheShadow +3
Es uno en un millon
DragonRED91 +4
C:/DOS
C:/DOS/RUN
RUN/DOS/RUN

O NO FUNCIONA, Y EN 15 MINUTOS TERMINA EL PARCIAL

RUN/BOY/RUN

link: https://www.youtube.com/watch?v=lmc21V-zBq0

71 comentarios - Me programé algo para otra materia [Binario e IP's]

-Bizco-Chuelo- +2
Lo guardo a FAV y lo leo tranqui mañana con la tablet, me dijiste que no ibas a hacer post hoy y no tengo puntos @vinnu
Vinnu +6
@-Carnegie- puedo ser de hasta mas de 3 personas a la vez
-Bizco-Chuelo- +3
Precexgeass +6
Programacion
Jim_Keller +2
te dejo 3 puntos xq soy un simple troll
Vinnu +3
Gracias, me suelen dar 3 por denuncia, asi que lo acumularé con los demas 3s
DragonRED91 +1
como estas hermano mio
salistecorriendo +2
ta bien el post...pero tenes menos visitas que tumba de ciruja
Vinnu +1
Por que hice así nomas el post. Le dije a Bizcochuelo que lo tenía para las 8pm. Surgió un problema y se me borró la mayor parte del código (tenía varios y seguro iba a ser top post). Asi que solo posteo este fragmento
Lautaa +3
Bien che, veo que andas con una base de redes de datos, tratá de modularizar un poco los programas para ir familiarizándote con el uso de funciones ! También cómo dijiste las estructuras son importantes de empezar a utilizar, para después meterse con las clases, un saludo !
Lautaa +1
@Vinnu Sólo que utilizás mucha más memoria. Por ejemplo si querés utilizar máscaras, podés ir "corriendo" los bits con << o >>, y hacer una máscara con otra variable para sacar la parte que deseees(por ejemplo, con una or(a nivel de bit) con una máscara 11111111 sacarías el byte, de lo que estás queriendo leer)
Vinnu
@Lautaa me la corto si fuera con una IPv6 que son 128 bits (8 bytes, cada uno en hexa por que almacena 16 bits).

Me gusta mucho redes, por eso hice este post. Creo que me dedicaré a redes en un futuro. Mientras tanto seguir mejorando con programación.
Lautaa +1
@Vinnu Sí pero en IPv6 ya no hay tanto rollo ya que no están las clases, hay partes lindas de redes y otras no tanto, pero es muy amplio, a mi con la capa física de las redes wireless me dieron ganas de largar todo a la mierda jajaja
JuancaDiarralde +10
no entendi nada

redes
Vinnu
Ni yo lo entendía, hubo veces que confundí lo que hice
24K-Magic +1
y vos te crees que alguien te entiende a vos?
xxxbxxx +1
y el link? subilo a github
Vinnu
Nah, subiría algo mas elaborado. Mas adelante haré proyectos buenos que como requisito tengan que llegar a 200 líneas.
batcavemasters +8
Cuando hay muchos if no seria?

switch (expression) {
case n1:
statements
break;
case n2:
statements
break;
default:
statements
}

O como sea en C
Vinnu +1
@ExDiamond en realidad anduvo a la perfección

No me acuerdo quién decía que se puede hacer miles de condicionales. En Excel tiene un límite

@batcavemasters lo sé, o simplemente vectores paralelos. 4 de ellos para representar los 4 bytes de una dirección IP, y uno para almacenar el resultado.

Entonces Podría mandar la dirección de IP y luego la Máscara para obtener la Subred.

Pero en ese caso creo que sería mejor con Array.
eladhe +1
@Vinnu Al primer comentario de todo...
Si te lo hubiese dicho a vos estaria tu nombre etiquetado
Vinnu
@eladhe ah, cierto
Tindyy +2
Ver esos bytes me recordo que estuve como dos semanas programando un memory hack para un game y perdi todo cuando formatee.
despertaste mis ganas de suicidarme, gracias.
Vinnu +1
Que bueno que haya podido ayudar en algo, salu2
EchosMania +1
Yo estuve una semana para hacer un programa que grababa, guardaba y enviaba a una base de datos videos si un infractor se pasaba el cartel PARE sin parar, era un trabajo para la escuela, arduino más un programa en C++.

Sin acordarme que tenía el programa formateé la PC y lo perdí todo, asco de vida.
DragonRED91 +1
@EchosMania suele pasar yo tenia un soft de gestion que se me borro por que la tabla mbr del disco se corrompio, tenia un backup en otro disco pero era de 1 año atras, me tomo un año mas recuperar hasta donde estaba desvelandome. Despues aberigue que se podian recuperar los datos huerfanos, pero bueno, aveces pasan las cosas para que uno aprenda a usas gdrive, todabia tengo el proyecto andando en muchos negocios, y otra version mas mejorada
iavenlex +2
hoy tengo un dia de mierda pichon

Pero me dio re ternura ver codigo en C

siempre que veo algo o lo hacen si o si en Java
o lo hacen si o si en C++
HStiglitzReborn +1
@DragonRED91 No denigre a C++, personalmente hago C++ 14 y estudio la libreria STL en C++ 17. Lo que digo es que como en este post, esta lleno de gente que da alarde de sus habilidades en C. Aun asi C es trivial.
Yo no elogio a las personas por conocer C, es simple, las elogio por saber y estar informados sobre donde aplicarlo, e.g. WinAPI, NTAPI, *nix, dispositivos integrados, etc.

Nadie es un genio por saber C. Es inteligente por saber como aplicarlo.
DragonRED91 +1
@HStiglitzReborn hola no entiendo tu mensaje, disculpa, hay una diferencia entre "no denigr a C++" y "no denigré a C++", supongo que la segunda es la correcta porque sino discutiriamos un buen rato absurdamente por un error en una tilde, yo entendiendo eso como no es, jaja soy un desastre yo tambien en las tildes, pero en este caso es totalmente requerido
Vinnu
@HStiglitzReborn ¿Que aporta tu comentario?

Nadie hace alarde de nada, excepto vos que mencionas cosas científicas
Litecoin +1
IPV6 ya no tiene el esquema clasfull de ipv4 , gg
Vinnu
No entendí gg
Litecoin +1
@Vinnu que no te va a servir de nada cuando pases a Ipv6 , el mismo se creo para poder arreglar el quilombo que armó Ipv4 con ese esquema y el uso de CIDR
Vinnu
@Litecoin se supone que nos prepararán para IPv6, ha de ser obligatorio adaptarnos a los cambios.
heel_flip +2
stdio se usa hasta para ir al baño jajajj
Vinnu +2
Standard Input Output. Entrada y salida de datos

Por el printf y el scanf si no me equivoco.
joqui2108 +1
Tip: usar operadores de bits para todo lo que es direcciones de red, te ahorras todo el quilombo de las variables auxiliares y las divisiones sucesivas para llegar al resto binario.
Vinnu +1
@joqui2108 por que lo puse en 1 hora y te fijaste después de 1 día XD
joqui2108 +1
@Vinnu Y si no puedo andar todo el día en esta pagina de mierda
Vinnu
@joqui2108 bueno, luego te lo vuelvo a pasar
tute1090T +1
10+ lo unico que entendi fue lo de las IP, besis
Walrus10 +7
es horrible tu codigo perdoname pero me fui a vomitar
Vinnu +2
Vomitame encima que me pone hot
tinchosobala +14
Del peor código que ví en mi vida
Vinnu
Pasa que lo había hecho bien antes y perdí todo el código, me lo puse a hacer así nomás para cumplir con alguien a quién le prometí que lo posteaba hoy.
iazaya_uchiha +1
el problema de las variables lo podes arreglar con un array por ejemplo
int variable[10 ]; inclusive depende lo que necesites pode hacer una matriz ej:
int (o char tmb ) variable[10 ][10 ];
creas una variables para ciclar y lo corres en un for o en un do while y vas aumentando
Vinnu +1
Lo sé, es lo que le conté a uno arriba, pero tenía poco tiempo y bueno ya fué

Antes lo hice con struct y vectores.
Patatasss +1
¿Sirve para hackear facebook?
Vinnu
Sí, pero te caerá la NSA
NeoxBlack +1
Me encanto la fuente, cual es ?
Vinnu +1
Century Gothic
pillo04 +11
Deja de poner 50 ifs... no necesitas ser ingeniero para eso
pruebas
thehachez +1
@Vinnu jaja usa un array o una matriz no crees un millón de variables, recorrerlo y multiplica por dos el valor o usa potenciación, crear una variable que vaya acumulando la suma, no vi nada pero me dio gracia esta parte jaja, todo tu código se puede resumir en tres lineas
shadowofdark +1
@Vinnu no hace falta hacer un for para evitar el excesivo uso de if's, usa el switch, while, do-while,... el excesivo uso de ifs te puede generar errores en el futuro o que el flujo del programa entre en un if que no tenga que entrar...
PD: cuando programes se utilizan variables significativas o se puede comentar el codigo cuando quieras compartirlo asi los demas entendemos que quiere decir cada variable... pero bueno para empezar esta bien
Vinnu
@thehachez ¿debería ir en Humor el post, verdad?

@shadowofdark oki cosita, lo tendré en cuenta
decano93 +1
Si te interesa te envío lo mismo que hiciste pero refactorizado.
Vinnu
Bueno, todo es bienvenido
HStiglitzReborn +1
Estructura de datos en C?
Code::blocks? no se che
Vinnu
God, ya expliqué varias veces que lo hice con struct antes pero el Antivirus me echó a perder el trabajo, incluido el Theme que aparece al final del post.

Y por eso lo hice así nomás.
jonatan183 +1
Hace media hora que trato de compartir el post y no aparece nada
Solo logre dejar puntos y ponerla en fav
OV3RDRIVE +3
al menos la pusiste
Vinnu
Roxii_2 +1
y para que sirve?
Jim_Keller
hay que ser 100tifiko para entender, yo se para que sirve, saca IP y se la envía a la policía
Vinnu
Para obtener Subnet y Broadcast. Con tiempo haré para los demás datos.

Este lo tiraré a la basura y lo haré mejor que ahora
sluvoni +3
Para pasar byte a binario:

void printbin(unsigned short int x){
char s[9]="00000000";
int i;
for (i=7; i>=0; i--)
s[7-i]=(x & (1 << i) )? '1':'0';
printf("%s",s);
}
sluvoni +1
@Vinnu 154 = 10011010. Genero primero una cadena de carácteres de ocho ceros. el valor es para indicar el fin de la cadena. Luego el FOR recorre i de 7 a 0. Como desplazo 1 (00000001) hacia la izq con el valor de i, primero queda 10000000 ( 1 desplazado 7 lugares a la izquierda). Hago la operacion AND (& con 154:
10011010
and
10000000
res: 10000000 (verdadero) entonces a la cadena en posicion 7-i (0) coloco un '1'.
sluvoni +1
@Vinnu Luego: r
10011010
and 01000000 (1 desplazado 6 lugares)
res: 00000000: mira verticalmente digito a digito. No hay un 1 en el lugar del 1 de abajo entonces da cero el operador &. Entonces en la posicion 7-6=1 coloco un '0' y asi
Vinnu
@sluvoni no quiere arrancar mi cerebro
heel_flip +1
Ley de Flaple sobre la perversidad de los programas concluidos

Todo programa, prescindiendo de su propósito, estructura y configuración, será concluído de la forma más insospechada y confusa posible, por razones completamente oscuras.
bondicero- +1
Che para cuando otra foto-receta de pizza?

Si la hacés etiquetame maestro.
eladhe +1
Usa vectores para esas miles de variables
Y creo que si usas un for por ahi haces un codigo mucho mas corto.
Vinnu
Había usado vectores y struct en el anterior y se me echo a perder. Por eso lo hice así como ahora. Todo por el Antivirus que me provocó un error
diegokpoboca +1
Juntada mañana en las aulas 40 te doy un cafe y te ayudo con esos feos if
SheldorCooper +1
Eso lo hago con los ojos cerrados, yo te pondria un 0.
denuncia2
Ashlank +1
Genial como siempre vinnu
Vinnu +1
Gracias cosita
reloaded789 -1
por fin alguien hace algo original y que vale la pena pequeño trap ya terminastes la ingenieria?
Vinnu +2
"pequeño trap"



Nah, recién estoy en mis inicios
reloaded789 +1
titiwer +1
es tan lindo esto de la programacion lastima que no entiendo una goma...
exxekiel +1
A simple vista, me suena a que necesitarias una estructura de datos con una interfaz, o sea un .h que tenga las funciones que con para el usuario y que la estructura este hecha con algun o algunos Arrays donde almacenar la informacion en lugar de usar tantas variables. Luego la asignacion de los valores del Array hacerlo con funciones que hagan uso de pattern matching para los casos de los if.
Hace mucho no toco c pero a simple vista me suena a eso.
Tambien podrias tener una estructura que represente una ip.

Me llama la atencion que en esta pagina tan particular nadie haya notado la presencia de la libreria conio.h en tu codigo jaja
Guido601 +1
@Vinnu y para q subis esta mierda exponiendote si supuuuessstamente lo hiciste mejor? Acepta q hiciste cualquiera, acepta las críticas, de q tenes miedo Orejon?
Vinnu
@Guido601 "Queres entender el mundo?, empezá por casa primero."
Guido601 -1
@Vinnu 2 + 2 = 3
AntonioCore +1
disculpa, pero ... para que mierda me puede servir algo como esto?
AntonioCore
@Vinnu vaya, vaya al parecer saber algo de redes, lleve varias clases de redes tambien, te estaba probando. salu2
Guido601 -1
@Vinnu ipv6 flaco.
Vinnu
@Guido601 "Queres entender el mundo?, empezá por casa primero."
dorgan +2
aplicacion
http://i.imgur.com/91eXbKU.jpg
dorgan +1
@Vinnu pasa que la mayoría de los de programación son muy rebuscados como para usarlos de tatuaje
materias
monsters_cocks +1
@Vinnu tatuate

#DEFINE whore
Vinnu
@monsters_cocks noo! PERV!

@dorgan es cierto
Encima parecen emos jajaja
Av-non-ZM +1
cómo llegué acá?
Vinnu
Te atraje telepáticamente
PhaganaxNS +2
por que vinnu responde todo si no es el autor del post??
jpcristian2 +1
Usa funciones! No uses conio.h .
Vinnu -1
@jpcristian2 math.h y después se me ocurrió hacer pow(2, y de 0, 1, 2, 3, 4, 5, 6, 7) ; para sacar las potencias de 2 y ver cuales serían 1 o 0 y así construir el binario y viceversa.

De hecho lo hice pero había hecho muchas variables y lo borré todo.
jpcristian2 +1
@Vinnu es 2 elevado a la posicion del bit contando de derecha a izquierda. En vez de almacenar 7 variables podés usar un arreglo de bool. Usá la libreria #include <stdbool.h>
Vinnu
@jpcristian2 me expliqué mal xD claro, empieza en 7 que sería 128 hasta 0, si estan todos en 1 es 255.

Eso no lo sabía, gracias
DieLuk +2
Muy desordenado y todo amontado, lo mejor es crear funciones y llamarlas en el main
Vinnu +1
Hice eso, te lo juro. Se me echó a perder el trabajo y bueno, no lo volví a rehacer, hice eso que ves en el post.

Acá hay un fragmento de otra cosa que hice antes:

https://pa stebin.com/LtdiyigT
Martin-Carp +1
A que universidad vas?
Vinnu
A una muy prestigiosa
diegoddk +2
uff esa declaracion de variables papa, ponele algun for o algo, el resto ni idea, nunca trabajé con redes, salu2
Vinnu
Lo sé. Solo cumplí con un compromiso
Mati1996 +4
Tenes que acortar codigos usando otros recursos del lenguaje C.
En vez de poner b1,b2,b3...b7 se hace un vector b de 7 elementos.
Todo lo que repetis muchas veces con diferentes indices lo tenes que hacer con un for
for(i=0,i<7,i++){
div= div[i+1]/2; ...
}
En lugar de poner 20 if, se usa el switch case.
Si haces todo esto, reducis las lineas de codigo a menos de la mitad
Vinnu
¿Cómo pones ese tipo de letra?

Sí, sí, lo sé, pero para sincerarme, hice el código en poco tiempo por que me excedí del horario que dije hacer el post. Aparte, perdí el código real, mucho mas completo y eficiente que esta cosa

Avast, te maldigo
facuvgaa +2
usa vectores y arrays maestrooooooooooooooooooooooooooooooooo
y creo que una estructura de dato jerarquizada estaría
Me programé algo para otra materia [Binario e IP's]
Vinnu +1


¿Y array de estructuras? :lala:

No sé, quizás así:

struct datos
{
   int n0, n1, n2, n3, n4, n5, n6, n7;
}

int main()
{
   struct datos binarios[3];

etc....

GaryUnwin +2
Si trabajas con estructuras dinámicas y procedimientos sería mas legible y optimizado el código ademas que te ahorrarías bocha de variables
GaryUnwin +1
@Vinnu Con las estructuras dinámicas (pilas,colas,listas,arboles o grafos) vas creando variables según la necesidad dentro de la ejecución del programa y no adentro del código(esto se hace ya que C no tiene arreglos dinámicos como otros lenguajes)
Vinnu +1
@GaryUnwin me falta ver eso aún, estoy en pañales
Kubrick9000 +2
@Vinnu Tendrias que leer sobre punteros primero, lee este libro: https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)
anonimut +1
que opinas dde KRACK ?