Link to home
Start Free TrialLog in
Avatar of justforLord
justforLord

asked on

(A grade for every who answer)I have asked 4 times no one gave me an good answer,this is the 5th:how can I get Default gateway?

Please don't give me link such as

"
For gateway check this:
https://www.experts-exchange.com/questions/10232657/IP-address-for-Gateway-DNS.html
For the MAC Address
https://www.experts-exchange.com/questions/20297408/MAC-address.html
For the subnet mask check this:
https://www.experts-exchange.com/questions/20570057/Getting-Subnet-mask.html
"
no use  I have done experiments

--------------------------------------------------------------------------------------------------------

please give me full  Delphi unit code and fuction name to use it .Please do experiments  to make sure that  your unit work right,before you give your unit code to me!
and I suggest you dont use register function to get it (the reason is below)     API  *.dll  function is the best way I think.

--------------------------------------------------------------------------------------------------------

I tried  some function but them dont work out.

Tell me some  function to do this after your examination!Do give me anything you haven't haven a examination! had better give me full unit and function name to use this unit after your examination!I will give everyone A grade who answer!
had better dont  use function of get register value
beacuse my register of gateway is strange   such: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/{4203270B-BDAF-418B-BF41-2569770580C4}/Parameters/Tcpip/DefaultGateway
So I want such API function to get defaultgateway ,beacuse I want to get default gateway regardless of which way to register.

I have use some function:



function my_ip_address:longint;
const
  bufsize=255;
var
  buf: pointer;
  //str: string;
  RemoteHost : PHostEnt; (* No, don't free it! *)
begin
  buf:=NIL;
  try
    getmem(buf,bufsize);
    winsock.gethostname(buf,bufsize);   (* this one maybe without domain *)
    RemoteHost:=Winsock.GetHostByName(buf);
    if RemoteHost=NIL then
      my_ip_address:=winsock.htonl($07000001)  (* 127.0.0.1 *)
    else
      my_ip_address:=longint(pointer(RemoteHost^.h_addr_list^)^);
      //str:= inet_addr(pointer(RemoteHost^.h_addr_list^)^);
  finally
    if buf<>NIL then  freemem(buf,bufsize);
    end;
  result:=winsock.ntohl(result);
  end;  


function LongToIp(Long: Longint): string;
var
  ipx: array[0..3] of Byte;
  i: Byte;
begin
  Longint(ipx) := long;
  Result       := '';
  for i := 0 to 3 do Result := Result + IntToStr(ipx[i]) + '.';
  SetLength(Result, Length(Result) - 1);
end;

but I don't have haven the correct answer from thoese two function

My Default GetWay:192.168.1.1  vpn host
my ip :192.168.1.103  in vpn
The GetWay above 192.168.1.1  :  218.86.198.1
mask:225.225.225.0
first DNS:202.98.192.68
second DNS:192.168.1.11


with the two function run

I got getway as 128.1.1.223  why?
where did 128.1.1.223 come from?

and I ping 128.1.1.223 I can't ping through it.

I can ping through 192.168.1.1  192.168.1.103   218.86.198.1 first DNS:202.98.192.68
second DNS:192.168.1.11

--------------------------------------------------------------------------------------------------------





ASKER CERTIFIED SOLUTION
Avatar of softplus
softplus

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of justforLord
justforLord

ASKER

3) If you want help, be willing to take the comments and work on the solution yourself as well - we're not here to do the work for you :)  Just in rightness and goodness!I am very willing to work for you all just in rightness!and I am always willing to take the comments  just in rightness!
we're not here to do the work for you: I hope you are just in rightness!
I will do hard work for you all just in rightness!

If you want help, ask in a civilized manner. I think I am very civilized just in rightness!

1) Multiple alias users for the same person are not allowed here   yes,please delete the acount"forLord"  dont delete this account If you think you must delete one of the two account,ok?



Most honour to the only one and rightness and goodness!
Let's work for eachother just in rightness and goodness!
Thank the only one and rightness and goodness!
Let's work for eachother just in rightness and goodness!
Does that mean the code worked? :)
Most honour to Lord!
If God agree!

I love God!

you gave me a wonderful delphi code