Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Вниз

Вывести ip на экран!   Найти похожие ветки 

 
zitrol   (2002-11-20 00:05) [0]

Читал статьи, help,faq...
Кто-нибудь может доходчиво объяснить!? А лучше дать пример!
Что-то не въезжаю - совсем недавно изучаю Delphi.
использую компоненту TServerSocket.
Понял, что:
LocalAddress, LocalHost, LocalPort - соответственно - локальный IP-адрес, хост-имя, порт;
RemoteAddress, RemoteHost, RemotePort - соответственно - удаленный IP-адрес, хост-имя, порт;
Но вот никак не доходит, как на экран вывести ip клиента!
К примеру(это я на борладн билдере сюшном делал -одно и тоже):

void __fastcall TfrmMain::sctServerGetThread(TObject *Sender,
TServerClientWinSocket *ClientSocket,
TServerClientThread *&SocketThread)
{
frmMain->mmInfo->Lines->Add("Open thread 1");
SocketThread = new CServerThread(false, ClientSocket);
}

Как здесь же вывести ip клиента(в Lines)?
СПАСИБО!


 
Morfein   (2002-11-21 22:17) [1]

Хм... что-то типа
frmMain->mmInfo->Lines->Add(IntToStr(ClientSocket->RemoteAddress));


 
Victor_Cr   (2002-11-22 10:24) [2]

2 Morfein © (21.11.02 22:17)

Ну допустим насчет IntToStr() ты перестарался.


 
Morfein   (2002-11-22 12:37) [3]

тьфу ты... спутал :))


 
raven79   (2002-11-22 13:53) [4]

забудьте....

function DetectHostIP : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
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;


 
Morfein   (2002-11-22 20:41) [5]

Ну и зачем?
В свойстве компонента это уже давно определено...


 
raven79   (2002-11-23 05:56) [6]

ну раз не мог чел с компонетнтом разобраться... вот код...


 
TAG_SPB   (2002-11-26 18:35) [7]

В тему :

Народ! никто не сталкивался с ЗАВИСАНИЕМ на ф-ии
GetHostName(Buffer, SizeOf(Buffer));

возникает при нескольких одинаковых логинах одновременно
(типа 2-3 GUEST"а в сети)


 
mdaemon   (2002-12-04 13:37) [8]

Вот чем могу тем погогу а дальше поковыряйся сам....uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Winsock, StdCtrls, ExtCtrls, Menus ,clipbrd;

type
TForm1 = class(TForm)
Timer1: TTimer;
PopupMenu1: TPopupMenu;
Exit1: TMenuItem;
Label1: TLabel;
Copy1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure formmousedown(sender: tobject; button: tmousebutton;
shift: tshiftstate; x, y: integer);
procedure Edit1StartDrag(Sender: TObject; var DragObject: TDragObject);
procedure Copy1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

// returns ISP assigned IP
function LocalIP : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
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;

{subject : moving forms (and other twincontrols) without using the caption-bar}

procedure tForm1.formmousedown(sender: tobject; button: tmousebutton;
shift: tshiftstate; x, y: integer);
const
sc_dragmove = $f012;
begin
releasecapture;
twincontrol(application.mainform).perform(wm_syscommand,sc_dragmove, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
FullRgn, ClientRgn, ButtonRgn: THandle;
Margin, X, Y: Integer;
begin
top:=screen.Height-50;
left:=screen.width-120;
height:=Label1.Height;
width:=Label1.width;
Margin := (Width - ClientWidth) div 2;
FullRgn := CreateRectRgn(0, 0, Width, Height);
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);
X := X + Label1.Left;
Y := Y + Label1.Top;
ButtonRgn := CreateRectRgn(X, Y, X + Label1.Width, Y + Label1.Height);
CombineRgn(FullRgn, FullRgn, ButtonRgn, RGN_OR);
SetWindowRgn(Handle, FullRgn, True);
//Hide Taskbar Icon
ShowWindow( Application.Handle, SW_HIDE );
SetWindowLong( Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
ShowWindow( Application.Handle, SW_SHOW );
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.interval:=1000*100;
Label1.Caption:="IP: "+LocalIP;
end;

procedure TForm1.Exit1Click(Sender: TObject);
begin
application.terminate;
end;

procedure TForm1.Edit1StartDrag(Sender: TObject;
var DragObject: TDragObject);
const
sc_dragmove = $f012;
begin
releasecapture;
twincontrol(application.mainform).perform(wm_syscommand,sc_dragmove, 0);

end;

procedure TForm1.Copy1Click(Sender: TObject);
begin
Clipboard.SetTextBuf(Pchar(copy(Label1.caption,4,255)));
end;

end.






 
reallyDeflorator   (2002-12-04 13:50) [9]

Все гении - ленивые люди. (Кто - то из мудрых...)

У меня тоже была такая прблема, когда я чат для своей локалки писал.
Так как я ленивая падла, то я сделал следующее:
1 сказал клиенту в ОнРид, чтоб он, паскуда по прибытию такой-то и такой-то строки отправлял серверу свой айпи
2 подлечил сервер, указав, какуюстроку надо отправлять, чтобы получить айпи и как его получить

и все
люблю ленивых перцев, а себя ещё больше



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
6-96909
Nord-Ost
2002-12-04 10:35
2003.01.30
Снова про сокеты... :-(


7-97048
olphi
2002-11-18 18:18
2003.01.30
Как узнать дату создания файла?


1-96684
BofA
2003-01-21 19:16
2003.01.30
Как правильно рисовать на Canvas е у TImage?


1-96773
Newer
2003-01-22 18:37
2003.01.30
TDateEdit из RX Library


1-96662
gsu
2003-01-21 15:01
2003.01.30
Dreak





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский