Solved

CREATE URL, HOST NAME WITH INDY 9

Posted on 2007-11-24
3
1,324 Views
Last Modified: 2008-02-01
CREATE URL, HOST NAME WITH INDY 9

I tried to create My WebPage (http://www.enclarton.com) for somebody who has computer in other home or city with other telefon line through INTERNET. To access to my home page.

I used TIdHostNameServer (EVENTS) and TIdAuthenticationItem (URL) but I don't know how to set them ?

It's only working while I'm putting address in IE6 :

http://127.0.0.1:8080/

But I want that it is working with :

http://www.enclarton.com

With specified INTERNET HOST NAME : www.enclarton.com

Here is how I was trying :

PROJECT1.DPR --------->

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

UNIT1.PAS --------->

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdCustomHTTPServer,
  IdHTTPServer, IdHostnameServer, IdAuthenticationManager;

type
  TForm1 = class(TForm)
    IdHTTPServer1: TIdHTTPServer;
    procedure FormCreate(Sender: TObject);
    procedure IdHTTPServer1CommandGet(AThread: TIdPeerThread;
      ARequestInfo: TIdHTTPRequestInfo;
      AResponseInfo: TIdHTTPResponseInfo);
    procedure sasaCommandHAddr(Thread: TIdPeerThread; Parm:string);
  private
    { Private declarations }
    sasaIdHostNameServer: TIdHostNameServer;
    sasaIdAuthenticationItem: TIdAuthenticationItem;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.sasaCommandHAddr(Thread: TIdPeerThread; Parm:string);
begin
Parm:='http://www.enclarton.com';
IdHttpServer1.Threads.Add(Thread);
IdHttpServer1.ParseParams:=True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  sasaidhostnameserver:=TIdHostNameServer.Create(IdHttpServer1);
  sasaidhostnameserver.Bindings:=IdHTTPServer1.Bindings;
  sasaidhostnameserver.DefaultPort:=8080;
  sasaidhostnameserver.OnCommandHADDR:=sasacommandHAddr;
  sasaidhostnameserver.Active:=True;

  sasaIdAuthenticationItem:=TIdAuthenticationItem.Create(nil);
  sasaIdAuthenticationItem.URL.URI:='http://www.enclarton.com';
  sasaIdAuthenticationItem.URL.Port:='8080';
  sasaIdAuthenticationItem.URL.Host:='127.0.0.1';
end;

procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
  LocalDoc: string;
  ByteSent: LongInt;
begin
  LocalDoc := 'C:\index.html';
  ByteSent := IdHTTPServer1.ServeFile(AThread, AResponseInfo, LocalDoc);
end;

end.

UNIT1.DFM --------->

object Form1: TForm1
  Left = 192
  Top = 114
  Width = 264
  Height = 120
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object IdHTTPServer1: TIdHTTPServer
    Bindings = <
      item
        IP = '127.0.0.1'
        Port = 8080
      end>
    CommandHandlers = <>
    DefaultPort = 8080
    Greeting.NumericCode = 0
    MaxConnectionReply.NumericCode = 0
    ReplyExceptionCode = 0
    ReplyTexts = <>
    ReplyUnknownCommand.NumericCode = 0
    AutoStartSession = True
    KeepAlive = True
    OnCommandGet = IdHTTPServer1CommandGet
    Left = 56
    Top = 24
  end
end

END OF PROJECT1 --------->

THANK YOU.
0
Comment
Question by:zuipo
  • 2
3 Comments
 
LVL 28

Accepted Solution

by:
2266180 earned 500 total points
ID: 20343478
first, you need to buy the domain enclarton.com
there is no way around that
second, you will need to host that domain somewhere (you need DNS. most registrars host it free for you(
third, you will need a static IP (which is routable in the internet) on which you will host your site/services.

after those are done, we can continue discussing :)
0
 

Author Comment

by:zuipo
ID: 20343869
Hi, ciuly !
I don't know if I'll get IP from DNS (Domain Name Server) or I'll have to use IP form my INTERNET CONNECTION ? After I buy domain enclarton.com and host that domain in DNS ? If I understand it correctly ?

Thank You.
0
 
LVL 28

Expert Comment

by:2266180
ID: 20343929
the ip and dns don't have anything in common, except that the name (from dns) resolves to an ip address). but otehr than that, they are 2 different things managed by 2 different entities.

let's take a clear example:
- you go to some registrar (godaddy.com for example)
- you buy the domain and they wil host (not proper word) it for you. meaning they give you DNS control and they freely offer 2 of their DNS servers for the domain
- using the DNS control they provide, you change the ip address (the A record) to point to your hosting companies IP address, or your ISP given IP address, provided it's an internet routable IP address (NOT 192.168.x.y or 10.x.y.z or another one. here's more info on private addresses: http://en.wikipedia.org/wiki/Private_network )

after that, when you ping your domain name, it should resolv to that IP adress and respond (if your firewall is not blocking the ping)
that means that your "network" is ready for your application.

THEN, we can go further and see what exactly you want to do. because what I see there makes no sense. if you are using a http server component, you are not using the get command right. you need to think about the http protocol which is implementd by the http server,
you shuld also know that
"TIdHostNameServer implements RFC 953, which is obsolete and no longer in use". instead, the internet uses DNS :)
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Create Database on Android via Delphi dbExpress 3 91
Delphi selector screen 2 79
Working with hours 3 58
firemonkey Android Listview Sort items 7 13
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

778 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question