Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Get PC IP address with Delphi XE2

Posted on 2012-03-12
10
Medium Priority
?
7,474 Views
Last Modified: 2012-03-13
Is there a simple way for a Delphi XE2 application to get the IP address of the PC where the application is running ?
Thanks
0
Comment
Question by:LeTay
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 23

Expert Comment

by:Ferruccio Accalai
ID: 37711431
uses winsock;
{$R *.dfm}

function LocalIP: string;
type
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array [0..63] of Ansichar;
  i: Integer;
  GInitData: TWSADATA;
begin
  WSAStartup($101, GInitData);
  Result := '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(Buffer);
  if phe = nil then
    Exit;
  pptr := PaPInAddr(phe^.h_addr_list);
  i := 0;
  while pptr^[i] <> nil do
  begin
    Result := StrPas(inet_ntoa(pptr^[i]^));
    Inc(i);
  end;
  WSACleanup;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(LocalIP);
end;

Open in new window

0
 
LVL 38

Accepted Solution

by:
Geert Gruwez earned 2000 total points
ID: 37713376
indy components include a component TIdIpWatch

Place on a form and IdIpWatch1.LocalIp to get your ip
or in a function:
function LocalIp: string;
var IPW: TIdIPWatch;
begin
  Result := '127.0.0.1';
  IpW := TIdIPWatch.Create(nil);
  try
    if IpW.LocalIP <> '' then
      Result := IpW.LocalIP;
  finally
    IpW.Free;
  end;
end;

Open in new window

0
 

Author Closing Comment

by:LeTay
ID: 37713645
Hello Geert, I wonder how you can find to for "productive" (making money) work seeing all the good answers/solutions you provide to the community !
Many thanks
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 21

Expert Comment

by:developmentguru
ID: 37713764
Delphi programming is a niche market.  Jobs are not always as readily available as they are with other languages, but they can pay very well.  Just in the last 3 months I have seen Delphi contracting jobs in the $65.00 - $80.00 per hour range ($130,000.00 - $160,000.00) per year.

This is yet another reason why I like Delphi.  I can take a 12 or 18 month contract and afford to have some time off!
0
 

Author Comment

by:LeTay
ID: 37713769
You mean time off to help EE ?
0
 
LVL 38

Expert Comment

by:Geert Gruwez
ID: 37713805
LeTay,
i admit it is difficult to cram everything in a 24 hour day.
it helps if you only need 5 to 7 hours of sleep

while oracle things are installing i try and solve delphi questions on EE
currently i'm installing a lot :)

current job: oracle dba + sap basis 3 years
previous jobs: delphi developer 10 years,
  technician (plumbing, electricity, hvac, car mechanics in the weekend) 4 years
next job: don't know yet

old hobbies: martial arts (black belt), golf (handicap 9)
current hobby: house makeover, kids

you won't see me much in the weekends and evenings
i'm doing a makeover of our house
> currently the bathroom is 90% finished.
i didn't know a bathroom was so much work, been busy for 6 weeks now
the walk-in rain shower I installed actually works , no leaks !
my old job as a plumber is finally paying off :)

you can do anything you want, you just have to set your mind to it
0
 

Author Comment

by:LeTay
ID: 37713818
Nice to read activities of Experts that often are in the shadow ...
For me Delphi is not the major task but the one I prefer
I live in Brussels, Belgium and I will retire in July but ... will continue working as consultant ...
0
 
LVL 38

Expert Comment

by:Geert Gruwez
ID: 37713826
nice to see a fellow country member
retirement ... nice,
by the time i get there, there will be no money left the way di rupo and the rest are going on
0
 
LVL 23

Expert Comment

by:Ferruccio Accalai
ID: 37713931
Mmm, I think that is simplest to use an embedded unit instead of a component coming from a huge component package.
Anyway, having already it installed, I agree that it's easy to use for this need
0
 

Author Comment

by:LeTay
ID: 37713933
I think the opposite, on a code review point of view.
0

Featured Post

[Webinar] Lessons on Recovering from Petya

Skyport is working hard to help customers recover from recent attacks, like the Petya worm. This work has brought to light some important lessons. New malware attacks like this can take down your entire environment. Learn from others mistakes on how to prevent Petya like worms.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
Suggested Courses

597 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question