何获取机器的ip地址

来源:互联网 发布:q宠大乐斗专精数据 编辑:程序博客网 时间:2024/05/13 05:28

 Function GetIP: String;
  Var
    ch : Array[1..32] Of Char;
    i : Integer;
    WSData: TWSAData;
    MyHost: PHostEnt;
  Begin
    If WSAstartup(2,wsdata)<>0 Then
      Begin
        If MessageDlg('Can''t start Winsock: Error '+IntToStr(WSAGetLastErro
r)+' Exit?',
                      mtConfirmation, [mbYes, mbNo], 0) = mrYes
         Then Halt;
      End;
    Try
      If getHostName(@ch[1],32)<>0 Then
        Begin
          If MessageDlg('getHostName() failed ! /n Exit?',
                        mtConfirmation, [mbYes, mbNo], 0) = mrYes
           Then Halt;
        End;
    Except
      If MessageDlg('getHostName() failed ! /n Exit?',
                    mtConfirmation, [mbYes, mbNo], 0) = mrYes
       Then Halt;
    End;
    MyHost:=GetHostByName(@ch[1]);
    IF MyHost=NIL THEN
      BEGIN
        If MessageDlg('GetHostName('+StrPas(@ch[1])+') failed : Error'+IntTo
Str(WSAGetLastError)+' /n Exit?',
                      mtConfirmation, [mbYes, mbNo], 0) = mrYes
         Then Halt;
      END
    ELSE
      BEGIN
        Result:='';
        For i:=1 To 4 Do
          Begin
            Result:=Result+IntToStr(Ord(MyHost.h_addr^[i-1]));
            If i<4 Then Result:=Result+'.';
          End;
      End;
      WSACleanup;
    END;

原创粉丝点击