Article View: borland.public.cppbuilder.internet.socket
Article #304Re: IdFTPServer server and firewall
From: roladdon
Date: Wed, 09 Apr 2008 16:43
Date: Wed, 09 Apr 2008 16:43
50 lines
2921 bytes
2921 bytes
Here is what I did in PASVReply - and it does work now:
void __fastcall TForm1::IdFTPServer1PASVReply(TIdFTPServerContext *ASender,
AnsiString &VIP, WORD &VPort, const TIdIPVersion AIPVer)
{
Memo1->Lines->Add("PASV command");
Memo1->Lines->Add("Connected from: " + ASender->Binding()->PeerIP);
if ((ASender->Binding()->PeerIP == ASender->Binding()->IP) ||
(ASender->Binding()->PeerIP == IdIPWatch1->CurrentIP))
{
Memo1->Lines->Add("Connected from local computer");
return;
}
if
(ASender->Binding()->PeerIP.SubString(0,ASender->Binding()->PeerIP.LastDelimiter("."))
==
IdIPWatch1->CurrentIP.SubString(0,IdIPWatch1->CurrentIP.LastDelimiter(".")))
{
Memo1->Lines->Add("Connected from local network");
return;
}
Memo1->Lines->Add("Connected from remote network");
PublicIP = GetPublicIP(PublicIPName);
Memo1->Lines->Add("VIP changed from " + VIP + " to " + PublicIP);
VIP = PublicIP;
}
____________________________________________________________________
GetPublicIP function, pDomainName is my own DDNS name:
AnsiString __fastcall TForm1::GetPublicIP(AnsiString pDomainName)
{
IdDNSResolver1->Resolve(pDomainName);
for (int n = 0; n < IdDNSResolver1->QueryResult->Count; n++)
{
switch (IdDNSResolver1->QueryResult->Items[n]->RecType)
{// TARecord, TCNRecord, THINFORecord, TMINFORecord, TMXRecord,
TNAMERecord, TNSRecord, TPTRRecord, TRDATARecord, TSOARecord, TTextRecord,
and TWKSRecord.
case qtA:
return ((TARecord*)IdDNSResolver1->QueryResult->Items[n])->IPAddress;
break;
}
}
return "";
}
Roland
Technical Details
Message-ID:
<47fcf224$1@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.isoc.lu!newsgroups.borland.com!not-for-mailReferences:
<47fbd697@newsgroups.borland.com> <47fbdfde$1@newsgroups.borland.com> <47fc0c8a@newsgroups.borland.com> <47fc0dc4$1@newsgroups.borland.com> <47fc1653@newsgroups.borland.com> <47fc471d$1@newsgroups.borland.com> <47fc6112$1@newsgroups.borland.com> <47fcd43b$1@newsgroups.borland.com> <47fcefc5@newsgroups.borland.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 11508e,3bf5299e11a8ee87 X-Google-Attributes: gid11508e,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Reply-To: "roladdon" <roladdon@PutMyServerHere.ca> From: "roladdon" <roladdon@PutMyServerHere.ca> Newsgroups: borland.public.cppbuilder.internet.socket References: <47fbd697@newsgroups.borland.com> <47fbdfde$1@newsgroups.borland.com> <47fc0c8a@newsgroups.borland.com> <47fc0dc4$1@newsgroups.borland.com> <47fc1653@newsgroups.borland.com> <47fc471d$1@newsgroups.borland.com> <47fc6112$1@newsgroups.borland.com> <47fcd43b$1@newsgroups.borland.com> <47fcefc5@newsgroups.borland.com> Subject: Re: IdFTPServer server and firewall Date: Wed, 9 Apr 2008 12:43:18 -0400 Lines: 52 Organization: AddOn X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.3138 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 X-RFC2646: Format=Flowed; Response NNTP-Posting-Host: 65.94.56.175 Message-ID: <47fcf224$1@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1207759396 65.94.56.175 (9 Apr 2008 09:43:16 -0700) Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.isoc.lu!newsgroups.borland.com!not-for-mail