日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Search Results

Windows ホストにDNSサーバーを立てる

執筆:2021.07.18
編集:2021.07.18
編集:2021.11.19
編集:2021.12.5


注)2021-11-19

DNSサーバーを立てると WSLサービス Ubuntu、docker が利用できません。
エラー: 0xffffffff
Press any key to continue...

参考:WslRegisterDistribution failed with error: 0xffffffff #4364
https://github.com/microsoft/WSL/issues/4364


DNSサービスは、別マシンに作ったほうがいいかもです


注)2021-12-5

Atermの上位機種のルーターにDNS機能がないので、まさかの買い替え前の低速の低価格のほうのルーターに「DNSルーティング設定」という簡易DNS機能が搭載されていました。

Aterm 買い替え前
のAterm
(脆弱性あり:
メーカー未対応)

脆弱性問題解決
と高速化のために
数年前に買ったルーター

Aterm WG1800HP4

簡易NAS ×
DNSルーティング ×
中継機能/子機モード ×
付属品:USB子機 ×
速度 WIFI
300Mbps
1300Mbps
450Mbps
速度 有線 1000Mbps 1000Mbps
WIFIバージョン WIFI4 WIFI5

WIFIの脆弱性があるのでセキュリティ的に問題がありますが、古いルーターから wifiを飛ばせば、簡単に名前解決でき、スマホ、タブレットでプライベートドメイン名でアクセスできました。

必要な時だけ電源いれて、出力を12.5%に絞っているので外にはほとんど漏れていないと思います。

いろいろ触ってわかったこと
中継機能/子機モードは、WIFIを使ったブリッジ接続で、中継機能/子機モードの違いはWIFIのアクセスポイントの有無だけ。
親機がスマホの場合、中継機能/子機モードは、DHCP機能がなくなるので、任意の固定プライベートIPを割り当てるには もう1個ルーターを挟む必要がある。

「DNSルーティング設定」がある最新のルーターに買い替えれば、脆弱性も含めて解決ですね
来年以降、WIFI6の安くていいのがあれば買い換えてみようと思います。

手持ちのルーターで解決できる問題でしたので
WSL2と競合するのでWindowsのDNSアプリは撤去しました。

Aterm WG1800HP4は、先日解約したトリオモデムと相性が悪く、NECサポートに問い合わせて教えてもらった設定にしないと 不定期にインターネット未接続になる(WAN端子切断)現象があったので、
また次のプロバイダでAtermでデフォルト設定で接続できないとか発生すると、目から涙になるので
WIFIルーターは脆弱性問題で長く使える製品ではないし
今度は、お試しで 他のメーカーにしようと思います!



C:\WINDOWS\SYSTEM32\DRIVERS\etc\hosts
/etc/hosts
に設定を加えていましたが管理が面倒です

https://www.nic.ad.jp/ja/newsletter/No22/080.html
> HOSTS.TXTからDNSへ
なるほど私は原始的なことをしていたわけですね 😅

ホストOSのほうは、コメントを入れたりしているので、手書きでいいのですが
ゲストOSにもドメインと固定IPを割りあてているため毎回入力更新はとても面倒です。

ゲストOSは、ホストのDNSサーバー指定するだけで解決するので
アプリで管理したほうがいいかも
ということで、検討に入りました。

アプリで対応する場合
・Windows付属のDNSサーバー
 (Windows Serverを持っていないので詳細不明)
・WSL2のゲスト内のDNSサーバー
・仮想マシンのゲストOSのDNSサーバー
・DNS専用 Windowsアプリ

機材で対応する場合
・DNSサーバー機能のあるなんらかの端末
ルーター、NAS、パソコンなど


フリーアプリは、余計な機能があると思うので、自前で調達。

さて、3分クッキングで完成できるのがありますよね。
TIdDNSServerを貼り付けて、入力して、Buildしたら完成。
カップラーメンより早い出来。

設定値をディスクに保存する場合は、書き込み権限などセキュリティを意識しないといけないし面倒。
設定値を変更したい場合は、コードを直接修正してアプリを再構築すればいいでしょう。

とにかく複数のこまかい管理は したくないのです.
取り合えず、下記の仕様で暫定運用してみようと思います
・アプリの多重起動を禁止しておく
・一定周期で、ホストOSのhostファイル更新時刻を確認する
・ホストOSの hostファイルを読み込んで、192.168.* の設定を取り込む
# private IP address
# 10.0.0.0 10.255.255.255 10\.
# 172.16.0.0 172.31.255.255 172\.(1[6-9]|2[0-9]|3[01])\.
# 192.168.0.0 192.168.255.255 192\.168\.
・不足分のドメインリストをアプリで設定する

一度構築してしまえばアプリは、ほぼ無管理で運用できそうな予感
セキュリティ対応のDNSにしないとよくないらしいですが、ルーター管理のローカルネットワーク内だから大丈夫でしょう。

» 続きを読む

カテゴリー: General
2021.07.18

Indy IPv6でアクセスできない (indy10)

執筆:2018.07.22
編集:2018.07.22

IPv6のアドレスに
IdHTTP1.Get
すると
Socket Error # 10061
Connection refused.
と表示される

原因
  URIでIPv6の形式でない場合は、IOHandlerの設定にかかわらず Id_IPv4 として扱われるため。

原因のコード部分
IdHTTP.pas : procedure TIdCustomHTTP.CheckAndConnect
if not Connected then try
  IPVersion := FURI.IPVersion;

この行を適切に修正することで、IPv6でアクセスできるようになります。

テストコード
(1) ipv6でサーバーを立ち上げ準備をする
  php -S localhost:8000 Unit1.pas

(2) テストコードを実行する
IdHTTP1.Get('http://localhost:8000/');

2018/07/22でのリポジトリ最新バージョンでもこのバグは健在でした。

IdHTTP1.Get('http://[localhost]:8000/');
とすると ipv6でアクセスするが実用的ではない。

最後に
Indyのhttpは昔からバグだらけなので
バグ報告したところで修正してくれるものでもないでしょうから
  • 自前でWinのapiでhttpアクセスするとか
  • HTTP クライアントが実装されているらしいのそれを使ったコードに移行するとか
他のツールを使ったほうがいいですね。

Dlephiをやめて C# や vb.net にいったほうが開発ツールのバグがなくていいですよ

キーワード:
indy indy10 IPv6 Socket Error # 10061
Socket Error # 10061 Connection refused.

» Indy IPv6でアクセスできない (indy10)'">続きを読む

カテゴリー: General
2018.07.22

Warning: Recompiling IdStreamVCL, checksum changed for IdGlobal IdStream.pas(29,3) Fatal: IdStreamVCL IdStream lib\i386-win32\IdStreamVCL.ppu, indylaz

Index: indylaz.lpk
===================================================================
--- indylaz.lpk (revision 5426)
+++ indylaz.lpk (working copy)
@@ -118,7 +118,7 @@
</Item3>
</RequiredPkgs>
<UsageOptions>
- <UnitPath Value="$(PkgOutDir)"/>
+ <UnitPath Value="$(PkgOutDir)\"/>
</UsageOptions>
<PublishOptions>
<Version Value="2"/>
2017.07.09

3分でプロキシサーバーを作ってみよう

はい。 超 久々の プログラミング クッキングのお時間です

基本材料 IdHTTPProxyServer1
IdServerIOHandlerStack1
IdAntiFreeze1
設定
IdHTTPProxyServer1.IOHandler := IdServerIOHandlerStack1;

これだけです。 あとは、  IdHTTPProxyServer1.Activeにするだけです。

ネットワークの設定
使っているWindows に対応した
アクセスポイントモードの数百円のUSB Wi-fi を用意します
コマンドプロンプトで ( ファイル名を指定して実行 cmd )
 ipconfig /all
で IP アドレスを探します
Ethernet adapter ワイヤレス ネットワーク接続:
        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : GW-USEco300
        IP Address. . . . . . . . . . . . : 192.168.100.1

アンドロイドの Wi-fi ポイントをじっとクリックすると設定が表示されるので
プロキシ 手動を選択して
上記のアドレスと 8080をいれると
プロキシ経由でアクセスできます。

Indyコンポーネントは 超不安定なので、データ破損には気をつけてくださいね

では、応用編

» 続きを読む

2013.11.05

Http Get Winsock Delphi

執筆:2012.08.07
編集:2012.08.07


こんな時に使えます。
Indyを使いたくないとき
  サイズが大きくなる。
Indyのライセンスが嫌い
Indyのバグにつきあいたくない

Indyだと
 s := IdHTTP1.Get(URL);
の1行で済みます。
※文字コードが破壊される場合は、
   別記事の「Win32 SJISで、Idhttp.Getすると壊れる理由」
   を参照のこと

Wininet.dllの
InternetOpenUrl
でも、似たようなことはできますが
今回は割愛します。

簡易の Http 取得関数を作ってみましょう

TTcpClientを使うと受信できないことがあるので
TClientWinSocketを使うのがミソです。

下記のサンプルをuses節に加えて
 s := HttpGetContents(Hostname , URI);
の1行で済みます。

ただし、サンプルは、
https通信未対応です。
リダイレクトやエラー処理も入っていません

また、 HTTP/1.1でリクエストすると
Contents取得部の処理が面倒なので
HTTP/1.0でリクエストしています。

» 続きを読む

2012.08.07

Indy 10.5.8.0 アップグレード メモ

執筆:2011.8.24
編集:2011.8.25

安定版は?と尋ねるとtrunc使えと返ってくる始末だし。
また、仕様を変更しています。
いい加減にしてほしいですね

TWebBrowserとTIdCookieManagerで
クッキーを双方向コピーできるようにしているので
仕様変更は迷惑なり!!

コード書き換えは、正確に受け渡しテストをしなくてはいけなくなるから大変だ!

Indy 10.5.8.0 from Indy 10.5.7 , 10.5.8
IdCookie.pas 廃止
TIdCookieRFC2109
TIdCookieRFC2965
TIdNetscapeCookie
TIdCookieに変更された
revision 4612 : Updating to cookie draft-23.
IdCookie.pas TIdCookie.CookieText 読み込み専用に変更されている
ParseServerCookieに置き換えで対応する。
クッキーを挿入したい場合、
新規にURIが必要になるので、自分でdomainとpathを事前にパースする必要がある。
IdCookieManager.pas  
  • CookieCollection.AddCookie :
    パラメータが変更されている
  • IdCookieManager1NewCookie
    型を変更する必要がある
    TIdCookieRFC2109 → TIdCookie

IdCompilerDefines.incにもう少し定義がほしい
DEFINE 10_5_8
は、ほんと迷惑 やめてほしい。
INDY_10_5_8とかにしてほしい。

バグが多いので下位互換性を保つ意味はないが、
仕様を変更した時点で、
INDY_10_5_OR_ABOVE
INDY_10_5_7_OR_ABOVE
INDY_10_5_8_OR_ABOVE
とかも定義してほしい

私は、自分でバグ修正して使っているので問題はないが
Indyは、仕様変更とバグに振り回されるので
できれば、他のインターネットコンポーネントを利用した方がいいだろう。

» Indy 10.5.8.0 アップグレード メモ'">続きを読む

2011.08.25

Win32 SJIS(〜Delphi2007? )で、Idhttp.Getすると壊れる理由

編集:2010年12月21日
執筆:2010年12月20日

今日のお題は、?

使用したバージョン: Indy version 10.5.8

IdHttp.Get(URL)が
いつの間にか文字コードが自動変換になりました。

Delphi2009より前のDelphiでのIndy文字化け
デフォルトがencASCIIのため 文字が破壊され ? に なってしま います。
※Delphi2009以降は、UTF8で呼ばれるので、この問題はないと思います。

英文圏がデフォルトのため、
 Win32 SJISベースのDelphi(〜2007?まで)の場合は、変更が必要です。
IdGlobal.GIdDefaultAnsiEncoding := encOSDefault;
IdGlobal.GIdDefaultAnsiEncoding := encUTF8;
 のお好きなほうを、プログラムの最初や随時変更が必要なところで呼びます。
 グローバル変数なので、毎回変更がいらない場合は、1回よべば十分です。
  TIdhttpに限らず、TIdMailなどで変なときは、試してみる価値はあります。
 Delphi2009以降の最新版は、UTF8ベースなので、こういう変更はいらないと思います。

  グローバル変数をいじる方がコードの書き換えが少なくてすみます。
  画像などをIdHTTP1.Get(url)で取得していた場合は、コードを修正する必要があります。

» 続きを読む

2010.12.21

Indy Cookie 2007


執筆:2007.01.05
編集:2007.03.19
編集:2007.07.09
編集:2007.07.18
編集:2007.07.21
編集:2007.11.23
編集:2009.10.16


追記:2009.10.16 IndyTiburon.zip(Indy 10.5.7)にて修正されているようです。
IndyTiburon.zipに移行して indy10.zip(10.2.3)は開発がとまったようですので注意が必要です。
このページの内容は古くなっています。
参考にする場合は注意が必要です。

10.0.52は、かなり古いので
cookieのドメインの最初が .で始まっていると処理できずエラーになります。
(IdCookie、IdCookieManager)
(10.1.6でも直っていませんでした。:2007.3、2007.7)
(10.2.3でも直っていませんでした。:2007.10)


他にも修正をみつけたので、この文書は
インストール方法と分離しました。(2007.7.21)
最新版のインストール方法は、こちらに書いてあります。


パッチ: クッキーのバグを修正します。

Indy10 Cookie bug fix(2007年3月中旬 時点、version 10.1.6)
Indy10 Cookie bug fix(2007年10月中旬 時点、version dev 10.2.3)
Indy9   Cookie bug fix(2007年7月中旬 時点、version 9.0.5.0(stable),indy9.0.18(stable), DevSnapshot)

【現象】
1.
   example.comがexample.comのcookieを渡し、ソフトウェアに保存したとします。
   .example.comでのcookieを、example.comで取得できません。

2.
   anywordexample.comにソフトウェアが接続するとexample.comのcookieをanywordexample.comに渡します。 
   example.com.anydomainにソフトウェアが接続するとexample.comのcookieをexample.com.anydomainに渡します。

 後者(2.)は、セキュリティ勧告ものレベルなのは容易に想像がつくと思います。

   サイトと同名の文字列を含んでる場合に限られますが、
   誘導によりクッキーの略奪が可能なので注意が必要です。

(3.)パス付き/で終わらないクッキーを保存した場合、同じ文字が並ぶパスにわたしてしまいます。
    firefox2ではわたさないことを確認しました。(違うパスへ保存はできるようです。)
 ※ IE7では、Indyと同様の現象が起きます。
    Netscpeの仕様書を見るとそうなると 最終パス名の部分一致になると書いてありました。
   ※ Cookieには、きちんとした規格が無いようなことがかいてありました。
    firefox2のような動作がいいと個人的に私は思いますのでそういう風に修正を加えます。

  /で終わらないクッキーを書いた方が悪いと思いますが、そういうミスはあるものです。
  (共有サーバーで問題になります。他人のアカウントにわたすので)
  例:   path=/tea; http/〜/tea/のものを  http/〜/team/ にもわたします。 
    

【対策】
※:適用した場合のコードの安全性はご自分で確認を取ってください。
  わたしは、一切責任はもちません。

コードが修正されている可能性も否定できませんので
まず、何もしない状態でセキュリティホールが残っているか確認をとることをお勧めします。
下の再現コードである程度確認できると思います

2007年3月でのdevコードなので、該当行が多少移動しているかもしれません。
関数名も書いているので探しやすいと思います。
 (delphi2005付属の10.0.52は、行数が違いますので関数名で探してください。)

Indy10
\Lib\Protocols\
IdCookie.pas
  単純に切り落とすと間違った判定をします。
TIdNetscapeCookie.IsValidCookie
Indy10.1.16 :
331: function TIdNetscapeCookie.IsValidCookie

begin
//....(省略)
   Result := FDomain = RightStr(AServerHost, Length(FDomain));
修正
  var ACookieDomain : String;
begin
//....(省略)
//  Result := FDomain = RightStr(AServerHost, Length(FDomain));
// bad code : FDomain = RightStr(AServerHost, Length(FDomain));
//   FDomain        AServerHost
//  xxxx.yyyy.com , zxxxx.yyyy.com : is not valid
//  xxxx.yyyy.com ,  xxxx.yyyy.com : is valid
// .xxxx.yyyy.com ,  xxxx.yyyy.com : is valid
// .xxxx.yyyy.com , yxxxx.yyyy.com : is not valid
      if (Copy(FDomain,1 , 1)='.') then
           ACookieDomain := FDomain
          else
           ACookieDomain := '.' + FDomain;
       Result := ( ACookieDomain = RightStr('.' + AServerHost, Length(ACookieDomain)) );
Indy 10.2.3 : 
-      Result := TextEndsWith(AServerHost, FDomain);
+       // bad code : Result := TextEndsWith(AServerHost, FDomain);
+       //    TextEndsWith('noexample.com',  'example.com') = true : is not valid
+        if (Copy(FDomain,1 , 1)='.') then
+            Result := TextEndsWith('.' + AServerHost, FDomain)
+         else
+            Result := TextEndsWith('.' + AServerHost, '.' + FDomain);
IdCookieManager.pas
  ドメインの比較にPos関数を使ってはいけません。
135: function TIdCookieManager.GenerateCookieList

begin
//....(省略)
  if IndyPos(LCookiesByDomain[i], URL.Host) > 0 then
修正
  TempCookiesDomain : String;
begin
//....(省略)
//  if IndyPos(LCookiesByDomain[i], URL.Host) > 0 then
    TempCookiesDomain := LCookiesByDomain[i];
    if (Copy(TempCookiesDomain,1 , 1) <> '.') then TempCookiesDomain := '.' + TempCookiesDomain;
    if (TempCookiesDomain  = RightStr('.' + URL.Host, Length(TempCookiesDomain))) then
注意
 Netscapeの仕様書では、/で終わらない場合、最後のパス名は部分一致になっています
 IE7もそういう動作をしているようです。
 firefox2では、部分一致にはなっていません。
 firefox2風に、/で終わるパスと同様の動作にするには以下のようにします。

function TIdCookieManager.GenerateCookieList

 if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
-->
// if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
 if (RightStr(LCookieList.Cookies[j].Path,1) = '/') then
  begin
    if Pos(LCookieList.Cookies[j].Path, URL.Path) <> 1 then continue;
  end
  else
  begin
    if Pos(LCookieList.Cookies[j].Path + '/', URL.Path) <> 1 then continue;
  end;
Firefox2では、Cookieのドメインに . がつくようなのでそうします。
Dev版(Indy 10.2.3)のIdGlobalProtocols.IsHostNameで
最初に . が付いているとFalseを返すようになってしまったので[ . ]が最初についていた場合取り除きます。

 .で始まるものを保存できるように修正をしましたので
 そのままでは最初の文字が . 付きと .がついていない物と混在してしまいます。
 以下のように修正します。
procedure TIdCookieManager.DoAdd

 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;
-->
 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;

  while (copy(LDomain, 1 , 1)='.') do LDomain := copy(LDomain, 2 , Length(LDomain));
  if (LDomain ='') then exit;
(省略)の部分は、ここでわかりやすくするために
省略しただけで誤解しないようにお願いします

Indy 9
IdCookie.pas
  単純に切り落とすと間違った判定をします。
function TIdNetscapeCookie.IsValidCookie

begin
//....(省略)
    if IsHostname(AServerHost) then
    begin
      if IsHostName(FDomain) then
        result := FDomain = RightStr(AServerHost,Length(FDomain))
       else
        result := FDomain = RightStr(DomainName(AServerHost),Length(FDomain));
    end
修正
  var ACookieDomain : String;
begin
//....(省略)
    if IsHostname(AServerHost) then
    begin
//      if IsHostName(FDomain) then
//        result := FDomain = RightStr(AServerHost,Length(FDomain))
//       else
//        result := FDomain = RightStr(DomainName(AServerHost),Length(FDomain));
      if (Copy(FDomain,1 , 1)='.') then
           ACookieDomain := FDomain
          else
           ACookieDomain := '.' + FDomain;
       Result := ( ACookieDomain = RightStr('.' + AServerHost, Length(ACookieDomain)) );
    end
IdCookieManager.pas
  ドメインの比較にPos関数を使ってはいけません。
function TIdCookieManager.GenerateCookieList

begin
//....(省略)
  if IndyPos(Uppercase(LCookiesByDomain[i]), Uppercase(URL.Host + URL.path)) > 0 then {FLX}
修正
  ACookieDomain : String;
begin
//....(省略)
//  if IndyPos(Uppercase(LCookiesByDomain[i]), Uppercase(URL.Host + URL.path)) > 0 then {FLX}
    ACookieDomain := LCookiesByDomain[i];
    if (Copy(ACookieDomain ,1 , 1) <> '.') then ACookieDomain := '.' + ACookieDomain;
    if (ACookieDomain  = RightStr('.' + URL.Host, Length(ACookieDomain))) then

注意
 Netscapeの仕様書では、/で終わらない場合、最後のパス名は部分一致になっています
 IE7もそういう動作をしているようです。
 firefox2では、部分一致にはなっていません。
 firefox2風に、/で終わるパスと同様の動作にするには以下のようにします。


 if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
-->
// if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
 if (RightStr(LCookieList.Cookies[j].Path,1) = '/') then
  begin
    if Pos(LCookieList.Cookies[j].Path, URL.Path) <> 1 then continue;
  end
  else
  begin
    if Pos(LCookieList.Cookies[j].Path + '/', URL.Path) <> 1 then continue;
  end;

 .で始まるものを保存できるように修正をしましたので
 そのままでは最初の文字が . 付きと .がついていない物と混在してしまいます。
以下のように修正します。

procedure TIdCookieManager.DoAdd

 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;
-->
 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;

  LDomain := Sys.Trim(LDomain);
  if ((LDomain <> '')and(IsHostname(LDomain))) then
    if (Copy(LDomain,1,1) <> '.') then LDomain := '.' + LDomain;
(省略)の部分は、ここでわかりやすくするために
省略しただけで誤解しないようにお願いします

バグの確認のためのコード DOS版 FORM版  
     ※コピーは、IEのみ動作します
ダウンロード
indy_10_src_patches
indy_mytest

ブラウザで確認したい場合 【 .で始まるクッキーの場合】

asp.netだとサンプルを作りにくいのでphpをサーバーに置きます。
---サーバーに保存します----phpのファイルです--------
<?php
  // cookie_test.php
   $s = '';
   if (isset($_COOKIE['name1'])) { $s .= 'name1='.$_COOKIE['name1']."\r\n"; }
   if (isset($_COOKIE['name2'])) { $s .= 'name2='.$_COOKIE['name2']."\r\n"; }

   setcookie ('name1','value1' ,time()+60*60*24*30, '/', '.example.com');
   setcookie ('name2','value2' ,time()+60*60*24*30, '/', 'example.com');
   header('Content-type: text/plain');

   print $s;
?>
-----------------------------------------------
example.comは、適当に自分のドメインに置き換えてください。
このファイルにIEやFirefoxでアクセスしてください。
2回ほどアクセスすると2つクッキーが表示されると思います。

しかし、Indyでは、パッチを適用しない場合は、1つしか表示できません。

バグの再現コードです。 (上のphpとセットで使用します)
-----------------------------------------------
 example code
-----------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
  var i:Integer;
begin
  Memo1.Text := IdHTTP1.Get(Edit1.Text);
  Memo2.Clear;
  for i := 0 to IdCookieManager1.CookieCollection.Count-1 do
    Memo2.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieText);
end;

----------------------------------------------
サーバを経由しないで単体で確認したい場合は、上の DOS版を利用します




おまけ:
C:\WINDOWS\SYSTEM32\DRIVERS\etc\hosts

に、 127.0.0.数字  ホスト名[ドメイン名]
みたいに追加して、apache等のサーバーを起動すると
容易にローカルでデバッグできると思います。

-----------------------
ssl通信のはじめにエラー
最新版は、どうも一緒に配布してあるdllだと古くてエラーになるようです。
 ソースコードを見ると以下のようにありました。
 自分でコンパイル済みのdll最新版を入れるようにだと・・・

Indy OpenSSL now uses the standard OpenSSL libraries
for pre-compiled win32 dlls, see:
http://www.openssl.org/related/binaries.html
recommended v0.9.8a or later


バグ報告してあげようと思ったのですが、バグ報告ページに接続できないので、あきらめました。
(また海外のメーリングリストは、ウイルス・スパムメールの嵐に遭うので関わる気はありません。)

 ポカ。。。(((∂。∂)ン
あれ? 私は誰 いまなにしていました?
 あれれ・・・

追記:2007年7月でも修正されていなかったので、newsグループに報告しました。
追記:Snapshotをみても反応が無かったので、QualityCentralに登録しました。 openされたようです。
追記:2007.10 RightStrがTextEndsWithに変更されていることを確認しました。
           関数名が変わっただけで欠陥は直っていないようです。


Indyのバージョンの確認方法
(新規フォームにボタンを貼って、コードを置き換えてください)

uses IdAbout;

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdAbout.ShowDlg
end;

2007.07.23

Indy10のクッキー欠陥(version  〜10.1.6)

(version  10.1.6)
Indy10のクッキーの欠陥を
もう一つ発見しましたので
掲載しました。

Indy10を使ってブラウザとして利用されている方は注意が必要です。

Indyの最新版のインストールの仕方[Delphi2005]
に掲載しています

追記:2009.10.16 IndyTiburon.zip(Indy 10.5.7)にて修正されているようです。 IndyTiburon.zipに移行して indy10.zip(10.2.3)は開発がとまったようですので注意が必要です。

追記:2017.04.07  Indy 10.6.2は、未修正が1個ありました。

2007.03.20

Indyの最新版のインストールの仕方[Delphi2005]


執筆:2007.01.05
編集:2007.03.19
編集:2007.07.09
編集:2007.07.18
編集:2007.11.24
編集:2009.10.16
編集:2015.11.21
編集:2017.04.07


記事の内容が古いので注意してください。 最新の内容ではありません。

10.0.52は、かなり古いので
cookieのドメインの最初が .で始まっていると処理できずエラーになります。
(IdCookie、IdCookieManager)
(10.1.6でも直っていませんでした。:2007.3、2007.7)
(10.2.3でも直っていませんでした。:2007.10)
(10.5.7 IndyTiburon.zipで修正されているようです。:2009.10)
(10.6.2.0 svnid:5315 : 2015-11 修正が必要でしたがDelphi2005にインストールできました)
(10.6.2.0 svnid:5412 : Delphi2005にインストールできました)


最新版のインストール方法

最新版の入手先

ダウンロード http://www.indyproject.org/Sockets/Download/DevSnapshot.en.aspx
ZIP/Indy10_~.zip をダウンロード。

svn http://www.indyproject.org/Sockets/Download/svn.EN.aspx

https://svn.atozed.com:444/svn/Indy10/trunc

» Indyの最新版のインストールの仕方[Delphi2005]'">続きを読む

2007.01.05

PR

[PR]