<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Redes - Desarrollo Web en Hidalgo y CDMX | Ferredia</title>
	<atom:link href="https://ferredia.com/category/redes/feed/" rel="self" type="application/rss+xml" />
	<link>https://ferredia.com</link>
	<description>¿Buscas empresas de desarrollo web en Hidalgo o crear páginas web profesionales? Soluciones seguras, auditables y orientadas a resultados.</description>
	<lastBuildDate>Tue, 04 Nov 2025 05:08:36 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://ferredia.com/wp-content/uploads/2025/11/icono3-150x150.png</url>
	<title>Redes - Desarrollo Web en Hidalgo y CDMX | Ferredia</title>
	<link>https://ferredia.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Localizando un DVR Perdido: Un Desarrollador Web Frente a la Red Local</title>
		<link>https://ferredia.com/localizando-un-dvr-perdido-un-desarrollador-web-frente-a-la-red-local/</link>
					<comments>https://ferredia.com/localizando-un-dvr-perdido-un-desarrollador-web-frente-a-la-red-local/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Jiménez]]></dc:creator>
		<pubDate>Tue, 04 Nov 2025 05:08:33 +0000</pubDate>
				<category><![CDATA[python]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Seguridad Informatica]]></category>
		<guid isPermaLink="false">https://ferredia.com/?p=342</guid>

					<description><![CDATA[Hace unos días, fui a visitar a un cliente para revisar los avances de su dashboard, todo iba bien hasta que casi al final de la reunión, me hizo una petición que no esperaba: "¿Podrías ayudarme a ver mis cámaras en el celular? Antes funcionaba, pero ahora no se ve nada." Le pedí que abriera [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="">Hace unos días, fui a visitar a un cliente para revisar los avances de su dashboard, todo iba bien hasta que casi al final de la reunión, me hizo una petición que no esperaba: <em>"¿Podrías ayudarme a ver mis cámaras en el celular? Antes funcionaba, pero ahora no se ve nada."</em></p>



<p class="">Le pedí que abriera la app del CCTV. Aparecía una dirección IP: 192.168.1.88. Hice un ping desde mi laptop… <strong>sin respuesta</strong>. La IP ya no estaba activa.</p>



<p class="">El problema no era técnico, sino de conocimiento: <strong>mi cliente no sabía qué era un DVR</strong>, mucho menos cómo encontrarlo. No tenía manuales, no recordaba la contraseña del router, y el sistema llevaba más de cinco años funcionando sin mantenimiento.</p>



<p class="">Yo, por mi parte, llevo más de una década enfocado en desarrollo web, con python, WordPress, SEO técnico, dashboards, y aunque conozco nmap desde hace años, mis flags de escaneo estaban literalmente <em>empolvadas</em>. Pero en lugar de perderme en tutoriales de YouTube o recurrir a herramientas comerciales, decidí buscar el viejo <em>“Sabuesos en la Red: El escaneo de puertos”</em> de Death Master, repasar mis apuntes arrugados de hace una década y desempolvar no solo las banderas de nmap, sino también esa parte de mí que aún sabe cómo hablarle a la red en su propio lenguaje. Así nació la idea de un nuevo proyecto: escribir un script.</p>


<div pagelayer-id="6141854" class="p-6141854 pagelayer-heading">
<div class="pagelayer-heading-holder">
<h2>Nació NetVortex: un escáner de red para humanos</h2>
</div>
		
			</div>


<p class="">En unas horas, armé una herramienta minimalista en Python que hiciera cuatro cosas bien:</p>



<ol start="1" class="wp-block-list">
<li class=""><strong>Descubrir todos los dispositivos activos</strong> en la red local mediante un barrido ligero de tipo <em><strong>ping scan</strong></em> (<em>-sn en nmap</em>), sin tocar puertos ni servicios todavía.</li>



<li class=""><strong>Guardar esa lista de hosts vivos</strong> para usarla como entrada en los pasos posteriores, reduciendo así la carga innecesaria sobre nmap: no tiene sentido que escanee puertos en una IP que ni siquiera responde.</li>



<li class=""><strong>Aplicar configuraciones simples</strong> pero efectivas para obtener, de forma selectiva, la dirección MAC, el sistema operativo estimado y los puertos abiertos — solo en los dispositivos que ya sabemos que existen.</li>



<li class=""><strong>Exportar los resultados</strong> en un CSV legible, con nombres de columna claros y riesgo categorizado, para que incluso alguien sin conocimientos técnicos pueda identificar al DVR perdido entre decenas de dispositivos.</li>
</ol>



<p class="">El resultado fue NetVortex: un escáner interactivo con perfiles (fast, balanced, deep), detección automática de tipo de dispositivo (¿es un router? ¿una cámara? ¿un DVR?) y una valoración de riesgo basada en los servicios expuestos, todo construido sobre la idea de que menos escaneo, pero más inteligente, suele ser más que suficiente.</p>


<div pagelayer-id="otu959" class="p-otu959 pagelayer-heading">
<div class="pagelayer-heading-holder">
<h2><strong>¿Cómo encontré el DVR?</strong></h2>
</div>
		
			</div>


<p class="">La herramienta arrancó con un <strong>barrido de descubrimiento ligero</strong> sobre <code>192.168.1.0/24</code>: envió pings, ignoró todo lo que no respondió y, en menos de 5 segundos, identificó <strong>14 dispositivos activos</strong>. Solo sobre esas IPs vivas lanzó un segundo paso: un <strong>escaneo rápido de puertos</strong> y una estimación básica de sistema operativo.</p>



<p class="">Uno de los hosts destacó al instante:</p>



<ul class="wp-block-list">
<li class=""><strong>IP</strong>: <code>192.168.1.105</code></li>



<li class=""><strong>Puertos abiertos</strong>: <code>80, 443, 37777</code></li>



<li class=""><strong>SO detectado</strong>: <em>Linux 3.X</em></li>



<li class=""><strong>Tipo</strong>: <em>Dispositivo Desconocido</em></li>



<li class=""><strong>Riesgo</strong>: <strong>Alto</strong></li>
</ul>



<p class="">Los puertos 37777, 8000, 8800-8803 son clásicos en DVRs de marcas como Dahua, Hikvision, asi que abrí el navegador, fui a http://192.168.1.105, y… <strong>¡login del DVR!</strong></p>



<p class="">Actualizamos la IP en la app del celular del cliente. Las cámaras volvieron a funcionar.</p>


<div pagelayer-id="bdg6043" class="p-bdg6043 pagelayer-heading">
<div class="pagelayer-heading-holder">
<h2><strong>Por qué esto importa (especialmente para desarrolladores web)</strong></h2>
</div>
		
			</div>


<p class="">Hoy me especializo en código: frontend, backend, SEO técnico y scripts en Python que convierten el caos en decisiones útiles. Soy, en esencia un geek. Pero antes de esto, pasé más de veinte años en las trincheras del soporte técnico: cableando redes, resucitando servidores y explicándole a Gerentes y Directores qué era una IP.</p>



<p class="">Con los años, mi foco cambió: del cable al contenedor, del router al CMS. Pero la infraestructura no desaparece solo porque ya no la miremos todos los días.</p>



<p class="">Cuando un cliente me llama para revisar su página web y de paso me dice que “ya no ve las cámaras en el celular”, no lo hace porque crea que soy mago, lo hace porque en su experiencia, <strong>quien entiende de tecnología puede navegar entre capas</strong>. Y en ese momento, no se trata de explicarle que “yo hago web, no redes”. Se trata de resolver su problema con lo que tengo: experiencia, herramientas y una mentalidad.</p>



<p class="">Así que me pregunté:</p>



<p class="">¿Cómo aplicar la mentalidad del desarrollador moderno a un problema que vive en las capas más bajas de la red, fuera de mi “zona de confort” actual?</p>



<p class="">La respuesta no fue volver a ser sysadmin. Fue <strong>llevar la disciplina del desarrollo a un mundo que antes resolvía con pura intuición</strong>. Porque al final, un DVR perdido no es un problema de red: es un problema de <strong>información perdida</strong>. Y los desarrolladores, más que nadie, sabemos cómo encontrarla, estructurarla y entregarla de forma útil, aunque sea en un CSV que alguien abrirá en Excel.</p>



<p class="">NetVortex es un solo archivo en Python. Puedes leerlo, modificarlo o integrarlo en tus propios flujos (¿un dashboard de inventario de red? ¿un reporte automático semanal?). Está en mi filosofía: <strong>herramientas que enseñan, no que ocultan</strong>.</p>



<p class="">Y si alguna vez vas a ver a un cliente y te piden ayuda con un DVR perdido… ya sabes qué llevar en tu USB.</p>


<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" loading="lazy" width="1200" height="500" src="https://ferredia.com/wp-content/uploads/2025/11/python-redes-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Python Redes 1" style="object-fit:cover;" srcset="https://ferredia.com/wp-content/uploads/2025/11/python-redes-1.jpg 1200w, https://ferredia.com/wp-content/uploads/2025/11/python-redes-1-300x125.jpg 300w, https://ferredia.com/wp-content/uploads/2025/11/python-redes-1-1024x427.jpg 1024w, https://ferredia.com/wp-content/uploads/2025/11/python-redes-1-768x320.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>]]></content:encoded>
					
					<wfw:commentRss>https://ferredia.com/localizando-un-dvr-perdido-un-desarrollador-web-frente-a-la-red-local/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Caché de objetos 0/408 objetos usando APC
Page Caching using Disk: Enhanced 
Caché de base de datos usando Disk (Request-wide modification query)

Served from: ferredia.com @ 2026-04-23 22:30:34 by W3 Total Cache
-->