Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2018
Jcg-Guirola Jcg-Guirola is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 20
Poder: 0
Jcg-Guirola Va por buen camino
Cambiar la dirección IP y/o servidor dns de un adaptador (lo mismo wifi que ethernet)

Hola, es estado buscando en el foro y he visto preguntas parecidas sin respuestas así que lo más seguro es que no se pueda hacer, aún así son del año 2005 o 2006 y tal vez ya saben como hacerlo, lo que necesito es cambiar la dirección IP y/o servidor dns de un adaptador (lo mismo wifi que ethernet). Gracias
Disculpen si subo el mismo hilo dos veces pero es que la conexión está lenta y creo que se cayó cuando le di enviar tema en el hilo anterior
Responder Con Cita
  #2  
Antiguo 21-06-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Puedes probar esto. Utiliza la clase WMI (Windows Management Instrumentation), que te da información del sistema y además puedes cambiarla.

En la web de Neftali hay información: https://neftali.clubdelphi.com/wmi-%...-introduccion/
Creo que tiene una librería por allí, que quizas te sirva de algo.

Código de StackOverflow:
https://stackoverflow.com/questions/...ogrammatically
Código Delphi [-]
{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils,
  ActiveX,
  Variants,
  ComObj;

procedure  SetStaticIpAddress(const NetworkCard, IPAddress, Mask :string);
const
  WbemUser    ='';
  WbemPassword='';
  WbemComputer='localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator   : OLEVariant;
  FWMIService     : OLEVariant;
  FWbemObjectSet  : OLEVariant;
  FWbemObject     : OLEVariant;
  FOutParams      : OLEVariant;
  vIpAddress      : OLEVariant;
  vMask           : OLEVariant;
  oEnum           : IEnumvariant;
  iValue          : LongWord;
begin
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);

  FWbemObjectSet:= FWMIService.ExecQuery(Format('SELECT * FROM Win32_NetworkAdapterConfiguration Where Description="%s"',[NetworkCard]),'WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  if oEnum.Next(1, FWbemObject, iValue) = 0 then
  begin
    vIpAddress   := VarArrayCreate([0, 0], varVariant);
    vIpAddress[0]:= IPAddress;
    vMask   := VarArrayCreate([0, 0], varVariant);
    vMask[0]:=  Mask;
    FOutParams:=FWbemObject.EnableStatic(vIpAddress, vMask);
    // 0 - Successful completion, no reboot required
    // 1 - Successful completion, reboot required
    Writeln(Format('ReturnValue  %s',[FOutParams]));
  end
  else
  Writeln('Network card not found');
end;

begin
 try
    CoInitialize(nil);
    try
      SetStaticIpAddress('Network card name','192.168.1.1','255.255.255.0');
    finally
      CoUninitialize;
    end;
 except
    on E:EOleException do
        Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
    on E:Exception do
        Writeln(E.Classname, ':', E.Message);
 end;
 Writeln('Press Enter to exit');
 Readln;
end.
Responder Con Cita
  #3  
Antiguo 21-06-2018
Jcg-Guirola Jcg-Guirola is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 20
Poder: 0
Jcg-Guirola Va por buen camino
Gracias

Voy a probar eso y te digo, muchas gracias, en otro hilo había preguntado como cambiar proxy del sistema pero dice que lo han movido y me redirecciona aquí así que aquí pongo como lo solucioné:
Lo que hice fue cambiar el proxy directamente desde el regedit de esta forma

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,registry, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings', True);
  reg.WriteString('ProxyServer','proxy.unica.cu:3128');
  reg.CloseKey;

 end;

end.

voy a buscar quizás pueda hacer lo mismo con el ip
Responder Con Cita
  #4  
Antiguo 22-06-2018
Jcg-Guirola Jcg-Guirola is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 20
Poder: 0
Jcg-Guirola Va por buen camino
encontré justo lo que estoy buscando en http://delphiaccess.com/foros/index....-desde-delphi/ el problema es que necesito poder decir a cual adaptador quiero cambiarle el ip aver si algunos de ustedes puede, yo no se mucho de programación todavía y no pude comprender completamente el código
Responder Con Cita
  #5  
Antiguo 22-06-2018
Jcg-Guirola Jcg-Guirola is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 20
Poder: 0
Jcg-Guirola Va por buen camino
Ya probé el de duilioisola solo hecho en falta lo de configurar el gateway per está ok muchas gracias, me demoré un poco porque me daba error y era que no me había fijado que estaba en consola, es que aún no se mucho, cuando me di cuenta lo adapté y perfecto
Responder Con Cita
  #6  
Antiguo 22-06-2018
Jcg-Guirola Jcg-Guirola is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 20
Poder: 0
Jcg-Guirola Va por buen camino
Bueno me he pues a revisar el de duilioisola y este y al final agregué el gateway me quedó así
Código Delphi [-]
uses
   ActiveX,
   ComObj;

procedure  SetStaticIpAddress(const NetworkCard, IPAddress,Mask,gateway:string);

const
  WbemUser    ='';
  WbemPassword='';
  WbemComputer='localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator   : OLEVariant;
  FWMIService     : OLEVariant;
  FWbemObjectSet  : OLEVariant;
  FWbemObject     : OLEVariant;
  FOutParams      : OLEVariant;
  vIpAddress      : OLEVariant;
  vMask           : OLEVariant;
  vgateway        : OLEVariant;
  oEnum           : IEnumvariant;
  iValue          : LongWord;
  begin
begin
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);

  FWbemObjectSet:= FWMIService.ExecQuery(Format('SELECT * FROM Win32_NetworkAdapterConfiguration Where Description="%s"',[NetworkCard]),'WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  if oEnum.Next(1, FWbemObject, iValue) = 0 then
  begin
    vIpAddress   := VarArrayCreate([0, 0], varVariant);
    vIpAddress[0]:= IPAddress;
    vMask   := VarArrayCreate([0, 0], varVariant);
    vMask[0]:=  Mask;
     vgateway   := VarArrayCreate([0, 0], varVariant);
     vgateway[0]:=   gateway;
    FOutParams:=FWbemObject.EnableStatic(vIpAddress, vMask);
    FOutParams:=FWbemObject.setgateways(vgateway);
    // 0 - Successful completion, no reboot required
    // 1 - Successful completion, reboot required
  showmessage(Format('ReturnValue  %s',[FOutParams]));
  end
  else
 showmessage('Network card not found');
end;


  end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 SetStaticIpAddress('Atheros AR8131 PCI-E Gigabit Ethernet Controller (NDIS 6.20)','10.2.4.3','255.255.255.0','10.1.1.1');
end;

end.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
pasar direccion ip del servidor a una aplicacion delphi cadina Varios 4 09-11-2008 15:20:32
Reinicar adaptador wifi. ayorta Varios 5 04-09-2008 10:37:03
Como puedo Ver y cambiar la dirección IP de una PC? AlexCan C++ Builder 2 13-05-2008 00:25:44
Cambiar dirección IP kes Internet 1 11-10-2007 11:50:23
Cambio De Direccion De Ip De Servidor En Oem phydel Oracle 2 07-12-2005 20:33:18


La franja horaria es GMT +2. Ahora son las 16:39:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi