2024/10/17(木)ECO関連ツールダウンロード
ECO関連ツールダウンロード
はじめに
http://jasmin.sakura.ne.jp/eco/script/で公開しているツールの一部をダウンロードできるようにしたものです。*1
アーカイブ化する際に、不要部分を削除するなどの若干の修正を行っています。
ダウンロードURL
- https://1drv.ms/f/c/8ad4eb5f7f729174/Ejw8AZOWF5dNj0FqQUSMFkcBX_W-9JsAXcq6SvmwRlLVnQ
- eco_script.7z
- eco_script.zip
7zとzipは内容は同じです。
使い方
- eco_script.7z (またはeco_script.zip) を展開。
- Mob DBの画像ファイルパスを変更。(必要なら)
- 展開したファイルとフォルダをWebサーバーにアップロード。
- ブラウザでindex.htmlへアクセス。
含まれているHTMLファイル
eco_script/ index.html eco_sim/index.html equipdb/index.html iris_catalog/index.html itemdb/index.html mobdb/index.html recipedb/index.html
画像ファイルパスを変更
eco_script/mobdb/db_header.js内の以下の記述を変更。
mobdb.image_dir = "http://jasmin.sakura.ne.jp/eco/script/img/";
画像データはECO-Wiki用と共通。
注意
- ECO Simのみローカル(file://)でも動作しますが、それ以外のツールはhttp(s)アクセスで無いと動作しません。
- 投稿機能は含まれていません。閲覧のみ可能です。
2024/03/31(日)ECO-Wiki (acronia) 環境ダウンロード
ECO-Wiki (acronia) 環境ダウンロード
ダウンロードURL
ECO-Wiki (acronia) 環境ダウンロードデータ を公開しました。以下のOneDriveフォルダからダウンロードできます。
現在のECO-Wikiデータ(現時点のecowiki.tar.gz)は以下からダウンロードできます。こちらは閉鎖しました。最新版は上記の20241104をダウンロードしてください。
- http://jasmin.sakura.ne.jp/ecowiki_dl/
ECO-Wiki (acronia) 環境構築手順
- Wikiプログラムとデータを展開してください。(以下のコマンドを使うか、適当なアーカイバを使用。)
unzip wiki.zip tar -zxvf ecowiki.tar.gz
- 展開後は以下のようなディレクトリ構造になります。
<pukiwiki>/ backup/ cache/ counter/ diff/ image/ lib/ mobdb/ plugin/ skin/ wiki/ 1x1.png default.ini.php echo_exlink.js en.lng.php index.php ja.lng.php keitai.ini.php pukiwiki.ini.php rules.ini.php
- 展開後は以下のようなディレクトリ構造になります。
- pukiwiki.ini.phpの$modifier、$modifierlinkを書き換えてください。
- pukiwiki.ini.phpの$adminpassは必要に応じて設定してください。(そのままだと凍結解除ができません。)
- 画像img_20240331.zipを好きなディレクトリに展開してください。
- 画像の格納場所に合わせて、wiki/*.txt と backup/*.gz 内の http://eco.acronia.net/img/ を置換してください。
- 参考: ECO-Wiki (acronia) 一括ダウンロードデータ記事のpukiwiki_replaceall.php
- plugin/mobdb.inc.phpの以下の箇所の記述を修正してください。
const IMG_URL_BASE = 'http://eco.acronia.net/img/'; const DISP_URL_BASE = 'http://eco.acronia.net/mobdb/#id='; const POST_URL_BASE = 'http://eco.acronia.net/mobdb/#mode=post&id=';
- データベースに関しては、http://jasmin.sakura.ne.jp/eco/script/mobdb/なら、ドメイン失効後も残ります。
- echo_exlink.jsの外部リンクホワイトリストを必要なら書き換えてください。
var hosts = [window.location.host,'jasmin.sakura.ne.jp','pukiwiki.sourceforge.jp','pukiwiki.osdn.jp','www.gnu.org','factage.com','twitter.com'];
- 添付機能を復活させたい場合は、plugin/attach.inc.phpを元のPukiWikiのファイルに差し戻してください。
更新履歴
- [2024/04/08] plugin/mobdb.inc.phpの修正箇所を追記。
- [2024/04/08] echo_exlink.jsの外部リンクホワイトリストについて追記。
- [2024/04/08] plugin/attach.inc.phpについて追記。
2024/01/04(木)WireGuard VPN 設定メモ (ASUSルーター)
WireGuard VPN 設定メモ (ASUSルーター)
やりたいこと
- VPNサーバーを経由したLAN内PCへのアクセス(ファイル共有など)
- VPNサーバーを経由したインターネットアクセス
前提条件など
- ルーター(VPNサーバー): ASUS TUF GAMING AX6000
- VPNサーバーがあるLAN: 192.168.1.0/24
- VPNクライアントに割り当てるアドレス: 192.168.2.0/24
LAN内にVPNサーバーを立てることも考えていましたが、ルーターの機能でできそうだったので使うことにしました。
VPNサーバー設定
- ASUS TUF GAMING AX6000設定画面の詳細設定からVPNを選択。
- WireGuard VPNを選択。
- 「Tunnel IPv4 abd / or IPv6 Address」に「192.168.2.1/32」を入力。
- 「Listen Port」に任意のポート番号を入力。
- v6プラス、OCNバーチャルコネクトなどのIPv4 over IPv6を利用している場合は、利用可能なIPv4ポート番号を入力。利用可能ポートは「システムログ」→「IPv6」で確認できる。
- 「VPNクライアント」の(+)ボタンをクリック。
- 「Address」に「192.168.2.2/32」を入力。
- 「許可されたIP (サーバー)」に「192.168.1.0/24,192.168.2.0/24」を入力。
- 192.168.1.0/24もいれておかないとLAN内PCにアクセスできないと思う。
- 192.168.2.0/24は192.168.2.2/32でも良いと思う。
- 「許可されたIP (Client)」に「0.0.0.0/0」を入力。
- インターネットアクセスを含めた全ての通信をVPN側にルーティングする設定。
VPNクライアント設定
上の設定で作成したVPNクライアントから、設定をエクスポートできるのでそのまま使います。
以下のようになっているはず。
[Interface] PrivateKey = ******** Address = 192.168.2.2/32 DNS = 192.168.2.1 [Peer] PublicKey = ********** AllowedIPs = 0.0.0.0/0 Endpoint = <インターネット側IPアドレス>:<設定したポート番号> PersistentKeepalive = 25
補足: Windows 11のファイアウォール
Windows 11標準のファイアウォールが有効になっている場合、以下のようにNetlogonサービスの通信を許可しないと、ネットワークセグメント超えのファイル共有アクセスができませんでした。
なお、ネットワークセグメント越えのホスト名解決は別途考える必要があります。(hostsファイル使うとか、IPアドレス指定でアクセスするとか。)
2023/09/07(木)ジャンクション(NTFS)の更新日時を変更する
ジャンクション(NTFS)の更新日時を変更する
ちょっとジャンクション(NTFS)の更新日時を書き換えようとしたら、すんなりできなくて結構手間取ったのでメモ。
通常の方法ではリンク先の更新日時が変更される
まずはディレクトリとジャンクションをセットで作成。
$directory = New-Item -Path "test_directory" -ItemType Directory $junction = New-Item -Value "test_directory" -Path "test_junction" -ItemType Junction dir Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2023/09/07 3:48 test_directory d----l 2023/09/07 3:48 test_junction
そして、ジャンクションの方に更新日時を設定してみると、ジャンクションではなくリンク先のディレクトリの更新日時が書き換えられてしまいました。
$junction.LastWriteTime = "2000-01-02T03:04:05+09:00" dir Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2000/01/02 3:04 test_directory d----l 2023/09/07 3:48 test_junction
仕様と言えばそうなのかも知れませんが、それだったら表示される更新日時もリンク先のものでないと一貫性が無いような……。
ジャンクションそのものの更新日時を変更する方法
まずは「Junction LastWriteTime」とかで調べてみると、英語圏で同様の疑問が挙がっていましたが手っ取り早い解決策は無さそうでした。(Windows APIを直接使う必要がありそうな感じ。)
更新日時変更をWindows APIを使って行う場合、CreateFile→SetFileTimeという手順になるのでこっちを調べてみたところ、ジャンクション(リパースポイント)をCreateFileで開くときにOPEN_REPARSE_POINTフラグを付けて開くとリンクを辿らずに開いてくれそうです。
FileTimeコピープログラム作成
OPEN_REPARSE_POINTを指定するにはWindows APIで直接指定するしか無さそうなので、自分でプログラムを作ることにしました。
日時を自由に指定できるようにするには日時文字列の解釈が必要になって面倒なので、他のファイル・フォルダの日時をコピーするプログラムです。これなら、GetFileTimeが使えるので楽。
SetFileTimeがcreationTime/lastAccessTime/lastWriteTimeを扱うので全部コピーしています。(コピーしたくなければNULLを渡せば変更されない。)
手抜きなので失敗してもメッセージとかは出ません(^_^;)
- ソースコード
#include <windows.h> #include <tchar.h> int _tmain(int argc, _TCHAR *argv[]) { HANDLE hFrom; HANDLE hTo; FILETIME creationTime, lastAccessTime, lastWriteTime; if (argc < 3) { return 1; } //---------------------------------------- // Get FILETIME from argv[1] //---------------------------------------- hFrom = CreateFile( argv[1], GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); if (hFrom == INVALID_HANDLE_VALUE) { return 1; } if (!GetFileTime(hFrom, &creationTime, &lastAccessTime, &lastWriteTime)) { return 1; } CloseHandle(hFrom); //---------------------------------------- // Set FILETIME to argv[2] //---------------------------------------- hTo = CreateFile( argv[2], GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT, NULL); if (hTo == INVALID_HANDLE_VALUE) { return 1; } if (!SetFileTime(hTo, &creationTime, &lastAccessTime, &lastWriteTime)) { return 1; } CloseHandle(hTo); return 0; }
- コンパイル
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat" cl.exe /DUNICODE /D_UNICODE /source-charset:utf-8 CopyFileTime.c
ジャンクションへのFileTimeコピー実験
CopyFileTime.exe test_directory test_junction Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2000/01/02 3:04 test_directory d----l 2000/01/02 3:04 test_junction
ちゃんと日時コピーできてました。
コピー元の方はOPEN_REPARSE_POINTを付けずに開いている(リンク先を辿る)ので、
CopyFileTime.exe test_junction test_junction
としても同じ効果のはず。