Форум: "Сети";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];
ВнизКакой мой IP в Интернете? Найти похожие ветки
← →
kalishenko stas (2002-11-27 18:53) [0]Если я работаю в Интернете через proxy-сервер, есть ли у меня интернетовский IP. Если да, то как его можно узнать (или программно, или при помощи чего-нибудь).
← →
Anatoly Podgoretsky (2002-11-27 19:02) [1]У тебя нет
← →
kalishenko stas (2002-11-27 19:38) [2]Хорошо, если так, то как можно общаться по Интернету, используя сокеты (или же использовать TCP или UDP - клиенты и сервера, прописав каким-то образом машину на прокси-серваке?)?
← →
kalishenko stas (2002-11-27 21:49) [3]Хорошо, а если я хочу обмениваться сообщениями через Internet с какой-то машиной, можно ли пользоваться сокетами или же только через TCP или UDP - серверы и клиенты (при этом наверняка каким-то образом нужно прописаться на прокси)?
← →
Alex Konshin (2002-11-30 08:33) [4]Это задача прокси.
И от того, какой он и зависит то, как с ним работать.
Обычно где прокси - там и firewall, так и от него тоже зависит, сможешь ли ты хоть что-нибудь сделать или нет.
← →
mdaemon (2002-12-04 13:23) [5]unit Unit1;
interface
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.
← →
Alex Konshin (2002-12-05 04:21) [6]2mdaemon: Сам-то понял, что написал?
Ну и где тут достается "интернетовский ip", когда работаешь через прокси?
На самом деле человек очевидно спрашивает про ситуацию, когда стоит firewall с прокси и в локальной сети адреса типа 10.*.*.*,
192.168.*.* и т.п..
В общем случае задача не решается.
Для конкретных прокси это иногда возможно. Но "прокси" понятие очень расплывчатое...
Хотя бы сказал какой прокси.
← →
Kornet (2002-12-05 07:42) [7]Во первых очень хотелось бы узнать каким способом происходит выход в интернет. Alex Konshin - не стоит строить предположения на пустом месте. Варианты: диалап - обычно провайдер клиенту присваивает временный внешний ip-адрес, но трафик идёт всё равно через прокси для кеширования. Локальная сеть - у клиента фиксированный внутренний ip-адрес, прокси используется для того, что бы использовать один внешний ip-адрес на кучу клиентов. Если на границе с инетом стоит только прокси, то с сокетами работать бесполезно, разве только что с socks-proxy. В случае с диалапом ты можешь сделать что то типа клиент-серверного приложения, если правда ты решишь проблему соединения: на первом этапе ты не знаешь ip-адрес для соединения так как он динамический. Ещё один вариант с использованием маскарадинга на шлюзе, при этом для клиента стает прозрачно, как будто у тебя появляется внешний ip-адрес, но только ты можешь быть инициатором соединения...
← →
kalishenko (2002-12-05 13:06) [8]У меня этот вариант:
>>Локальная сеть - у клиента фиксированный внутренний ip-адрес, прокси используется для того, что бы использовать один внешний ip-адрес на кучу клиентов.
Но весь прикол в том, что и на том конце такое же соединение, т.е. ни я не знаю IP того прокси-сервака, с которым хочу соединиться, ни на том конце не знают IP моего прокси-сервака.
Если бы были известны эти IP, то, по-моему, соединение через сокеты было бы вполне реальным. Или я не прав?
← →
Wonder (2002-12-05 13:52) [9]Скорее всего не прав, поскольку прокси практически всегда функционирует и настроен как сервер только для локальной сети и как клиент для инета и, как следствие, не принимает входящих запросов на соединение со стороны инета.
← →
Reindeer Moss Eater (2002-12-05 14:02) [10]>kalishenko
Ни тому "концу", ни тебе не удастся установить соединение друг с другом.
← →
Alex Konshin (2002-12-07 06:24) [11]2 Kornet: Насчет "пустого места" - если человек спрашивает, как определить внешний ip-адрес, то, очевидно, что он в intranet с выходом в интернет через какой-то прокси (мы так и не узнали какой). Из дальнейшего видно, что я правильно угадал.
2 kalishenko: Все-таки скажи какой прокси/firewall, иначе ты ответа не дождешься. Если это что-то основанное на NAT или SOCKS, то нужно просто соответственно настроить прокси.
← →
rastochnik (2002-12-07 17:02) [12]а если исходный текст писем использовать?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c