Q&A

  • ip바꾸기..
김영대님이 올려주신 아래 프로시져..xp에서는 안되는 군요..

레지스트리를 열어서 보니..


  HKEY_LOCAL_MACHINE,SYSTEMCurrentControlSetServices{95213BDB-9B9F-41D7-A52A-3B92FB113057}ParametersTcpip


위와 같은 레지스트리 항목에 아이피및 기타 설정값이 등록되어 있었습니다.

그런데 궁금한 것은 아래 소스를 보면 windows 유닛의 레지스트리 설정 함수들을
사용한거 같은데..Registry 유닛에 정의된 함수들을 사용해도 되는지..

그리고 단순히 레지스트리값만 변경한다고 해서 tcp/ip 설정이 변경이 되는것인지?

레지스트리항목 값들을 변경후에 추가적인 작업이 필요하진 않는지 궁금합니다.

내일 다시 해봐야 겠지만....혹시 해보신 분들의 도움을 받고자 올립니다.

ipchanger 라는 프로그램을 찾아 헤매다가..찾긴 했는데..
쉐어웨어라서..^^;..그냥 간단하게 직접 만들어 볼려다가..ㅋㅋㅋ

큰일이네요..오늘도 벌써 2시가 넘어 버렸군여..ㅠㅠ

낼도 무지 힘들겠군..ㅡㅡ;  

즐코하세요~
**************제 레지스트리 내용 저장한 내용입니다***********
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices{B565815B-1873-490B-9348-BBC8C16E7DC3}]

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices{B565815B-1873-490B-9348-BBC8C16E7DC3}Parameters]

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices{B565815B-1873-490B-9348-BBC8C16E7DC3}ParametersTcpip]
"IPAddress"=hex(7):30,00,2e,00,30,00,2e,00,30,00,2e,00,30,00,00,00,00,00
"SubnetMask"=hex(7):30,00,2e,00,30,00,2e,00,30,00,2e,00,30,00,00,00,00,00
"DefaultGateway"=hex(7):00,00
"DhcpIPAddress"="192.168.0.218"
"DhcpSubnetMask"="255.255.255.0"
"DhcpServer"="192.168.0.1"
"Lease"=dword:00093a80
"LeaseObtainedTime"=dword:3eaeb071
"T1"=dword:3eaeb19d
"T2"=dword:3eb59c51
"LeaseTerminatesTime"=dword:3eb7eaf1
"IPMask"="255.255.255.0"
"EnableDHCP"=dword:00000001
"DhcpDefaultGateway"=hex(7):31,00,39,00,32,00,2e,00,31,00,36,00,38,00,2e,00,30,
  00,2e,00,31,00,00,00,00,00
"DhcpSubnetMaskOpt"=hex(7):32,00,35,00,35,00,2e,00,32,00,35,00,35,00,2e,00,32,
  00,35,00,35,00,2e,00,30,00,00,00,00,00


----------------------------------------------------------------
----------------------------------------------------------------
The IP-address and the ip-Mask are on my computer located in the registry at
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesClassNetTrans002

If you want an automatic ip-address/mask, you should run the procedure below
as SetTCPip('0.0.0.0', '0.0.0.0')
otherwise you should run it like SetTCPip('255.254.253.255',
'255.255.255.255')

Good luck,

G. Jacobs


procedure SetTCPIP(IpAddress, ipMask:pchar);
var KeyHandle, SubKeyHandle:THandle;
    SubKeyName, NetworkDesc:array[0..255] of char;
    ValType, NetworkDescLength, SubKeyNameLength, index:dword;
    LastWriteTime:PFileTime;
begin
  index:=0;
  SubKeyNameLength:=255;
  RegOpenKeyEx(HKEY_LOCAL_MACHINE,
'SystemCurrentControlSetServicesClassNetTrans', 0, KEY_ALL_ACCESS,
KeyHandle);
  while (RegEnumKeyEx(KeyHandle, index, SubKeyName, SubKeyNameLength, nil,
nil, nil, LastWriteTime)<>ERROR_NO_MORE_ITEMS) do
  begin
    RegOpenKeyEx(KeyHandle, SubKeyName, 0, KEY_ALL_ACCESS, SubKeyHandle);

    NetWorkDescLength:=255;
    RegQueryValueEx(SubKeyHandle, 'DriverDesc', nil, @ValType, @NetworkDesc,
@NetworkDescLength);
    if (NetworkDesc='TCP/ip') then break;

    inc(index);
    SubKeyNameLength:=255;
  end;
  if (NetworkDesc<>'TCP/ip') then
  begin
    messagebox(0,'TCP/ip protocol is not installed on your computer','',0);
    exit;
  end;
  NetWorkDescLength:=255;
  RegSetValueEx(SubKeyHandle, 'IPAddress', 0, REG_SZ, ipAddress, 15);
  RegSetValueEx(SubKeyHandle, 'IPMask', 0, REG_SZ, ipMask, 15);
end;
0  COMMENTS