Mostramos una aplicación de consola realizada en Visual Studio .Net C# (C Sharp) que lee la dirección IP de un fichero CSV (exportado de las reservas de un servidor de DHCP en Windows Server) y si el nombre de red del equipo coincide con el nombre de red de alguno de los registros del fichero, establecerá su IP estática y los datos de red contenidos en el fichero de configuración de la aplicación: máscara de subred, puerta de enlace y servidores DNS. También permite desactivar el protocolo IPv6 de todos los adaptadores de red donde se ejecuta.

Requisitos para desarrollar aplicación Visual Studio .Net que cambia la IP del equipo

Necesitaremos disponer del entorno de desarrollo Visual Studio .Net. Es válida la versión Community, que es gratuita. Para realizar la aplicación hemos usado Microsoft Visual Studio Community 2019.

En los siguientes enlaces explicamos como instalar Visual Studio .Net y realizar una aplicación simple de prueba:

El usuario con el que trabajemos en el equipo Windows deberá tener permisos suficientes para acceder a las propiedades de red, a la configuración del adaptador de red y modificar sus valores: dirección IP, puerta de enlace, DNS, etc..

Realizar aplicación de consola en Visual Studio .Net C# que modifica la dirección IP de un equipo y desactiva el protocolo TCP IPv6

A continuación explicaremos paso a paso cómo crear una aplicación (proyecto) en Visual Studio .NET Community. Dicha aplicación leerá la IP y el nombre de red del equipo (hostname o nombre DNS) y establecerá estos valores en la configuración de red del propio equipo donde se ejecuta, siempre y cuando el nombre de red coincida con alguno de los nombres de red del fichero CSV.

Crearemos un nuevo proyecto pulsando en «Archivo» – «Nuevo» – «Proyecto…»:

Realizar aplicación de consola en Visual Studio .Net C# que modifica la dirección IP de un equipo y desactiva el protocolo TCP IPv6

Elegiremos un proyecto de tipo «Aplicación de consola (.NET Framework)»:

Realizar aplicación de consola en Visual Studio .Net C# que modifica la dirección IP de un equipo y desactiva el protocolo TCP IPv6

Introduciremos los datos para el nuevo proyecto:

  • Nombre del proyecto: por ejemplo «AsignarIPEstatica».
  • Ubicación: carpeta donde se crearán los ficheros del proyecto.
  • Framework: elegiremos del desplegable la versión de .NET Framework que queramos usar. Los equipos donde ejecutemos la apliación deberán tener una versión de .NET Framework igual o superior a la elegida.
Realizar aplicación de consola en Visual Studio .Net C# que modifica la dirección IP de un equipo y desactiva el protocolo TCP IPv6

Necesitaremos dos referencias para que la aplicación funcione correctamente, que las agregaremos antes de agregar el código. Para ello pulsaremos en el menú «Proyecto» – «Agregar referencia…»:

Deberemos tener marcadas las siguientes referencias:

Por defecto suelen venir marcadas, en una aplicación de consola:

  • System.Core
  • System.Data
  • Ssytem.Data.DataSetExtensions
  • System.Net.Http
  • System.Xml.Linq
  • Microsoft.CSharp
  • System
  • System.Xml

Marcaremos las dos que faltan:

  • System.Configuration
  • System.Management

Una vez creado el proyecto y agregadas las referencias, en el fichero Program.cs que se crea por defecto, agregaremos el siguiente código C#:

Funcionamiento de la aplicación Asignar IP estática en C#

Para entender mejor el código anterior, explicaremos el funcionamiento de la aplicación paso a paso a continuación.

  • Lee los valores de DNS, máscara de subred, puerta de enlace, desactivar IPv6, ruta y nombre del fichero de reservas CSV, del fichero de configuración de la aplicación AsignarIPEstatica.exe.config, que debe existir junto con el ejecutable y tener el siguiente contenido (de ejemplo):
Funcionamiento de la aplicación Asignar IP estática en C#

En el ejemplo de fichero de configuración anterior, vemos que los parámetros que requiere la aplicación son:

  • DNS: direcciones IP de los servidores DNS, si son varias las separaremos con una coma.
  • Máscara de subred: máscara de subred que se aplicará al adaptador de red por defecto del equipo en el que se ejecute el programa, siempre que exista en el fichero CSV de reservas.
  • Puerta de enlace: puerta de enlace (gateway) que se aplicará al adaptador de red por defecto del equipo en el que se ejecute el programa, siempre que exista en el fichero CSV de reservas.
  • Desactivar IPv6: introcudiremos true o false para que se desactive el protocolo TCP IPv6 en el adaptador de red del equipo (si hemos indicado «true») o para que se active (si hemos indicado «false»).
  • Ruta y nombre fichero reservas CSV: nombre del fichero CSV que contendrá los equipos y la IP que le corresponde.

Dicho fichero de configuración debe existir y tener los parámetros anteriores definidos, de lo contrario la aplicación finalizará con error.

Una vez leídos los valores de configuración anterior, la aplicación pasará a leer el contenido del fichero CSV, que debe tener este formato:

Funcionamiento de la aplicación Asignar IP estática en C#

Como vemos, el fichero reservas.csv contendrá las direcciones IP de los equipos de la red entre corchetes, una espacio y el nombre de red del equipo al que le corresponde la dirección IP.

La aplicación irá leyendo cada línea del fichero. Obtendrá el nombre de red del equipo actual (hostname o nombre DNS) en el que se está ejecutando.

Funcionamiento de la aplicación Asignar IP estática en C#

Si coincide el nombre del equipo actual con alguno de los nombres del fichero CSV:

Funcionamiento de la aplicación Asignar IP estática en C#

modificará los datos de configuración de red del equipo por la IP del fichero CSV y el resto de valores del fichero de configuración (puerta de enlace, DNS, máscara de subred).

Funcionamiento de la aplicación Asignar IP estática en C#

Esta aplicación es útil para casos en los que tengamos las asignaciones de direcciones IP por DHCP, de forma automática, como muestra la imagen siguiente:

Funcionamiento de la aplicación Asignar IP estática en C#

Y queramos cambiar a asignación estática:

Funcionamiento de la aplicación Asignar IP estática en C#

En este caso podremos generar un fichero CSV con el formato indicado, con todos los equipos y la IP que le correspondan y ejecutar la aplicación en todos los equipos, de forma que desactivará la asignación por DHCP (obtener una dirección IP automáticamente) y cambiará a su dirección estática fija.

En un dominio el programa puede ejecutarse por script de directiva, para que el proceso sea automático.

El programa en funcionamiento:

Funcionamiento de la aplicación Asignar IP estática en C#

Vemos que va comprobando cada línea del fichero CSV, si coincide el nombre del equipo, realizará el cambio de IP.

Descarga del código fuente en C# de la aplicación completa

A continuación os mostramos enlace para la descarga gratuita del código fuente completo en C# de la aplicación de este tutorial. Realizada con Visual Studio .Net Community 2019: