🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.internet.socket
Article #304

Re: IdFTPServer server and firewall

#304
From: roladdon
Date: Wed, 09 Apr 2008 16:43
50 lines
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-mail
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>

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