mmm pues mediante la api lo desconozco, yo sabia hacerlo con ms-dos pero cuando me vi obligado a realizarlo con delphi para una aplicación aca en el trabajo realicé cree un archivo bat que realiza el cambio lo ejecuto y luego lo elimino. Se que es un método poco ortodoxo pero funciona, espero que los genios del club puedan darte otra solución, esto es lo que hice:
meti este código en un boton
Código Delphi
[-]
var F: TextFile; ruta: string; ruta := ExtractFilePath(application.ExeName); ruta:= ruta + '/cambiarip.bat';
AssignFile(F, ruta);
Rewrite(F);
writeln(F, '@echo off');
writeln(F, 'cls');
writeln(F, 'Echo La operacion ha comenzado');
writeln(F, 'Echo no cierre esta ventana');
writeln(F, 'netsh interface ip set address "Conexion de area local" static '+ IpRed.text + ' 255.255.255.0 '+ puertaRed.text + ' 1');
writeln(F, 'netsh interface ip set dns "Conexion de area local" static ' + DnsPreRed.text);
writeln(F, 'netsh interface ip add dns "Conexion de area local" addr=' + DnsAltRed.text);
writeln(F, 'Echo Ips cambiadas, gracias'); WinExec(PChar('cambiarip.bat'),SW_SHOWNORMAL);
Espero que te sirva