見出し画像

TWSNMP FC フィードバック:IPアドレスのソート順を改善して欲しい

今朝も猫が2時ぐらいから騒いでしました。2時にお世話して二度寝の後、4時にもう一度起こしてくれました。
昨日リリースしたバージョンに早速フィードバックが届いていました。

いつも利用させていただきありがとうございます。
Linuxサーバに設置すると、24時間のNW管理ができますので、とても助かっています。
今回のVer Up、楽しみに待っていて、早速Update致しました。
一点だけ贅沢を言わせてください。
ノードリストをIPアドレス順にソートしたときに、各オクテット毎に並び替えができていると、とても嬉しいのですが。
どうぞよろしくお願いします。

ご利用頂きありがとうございます。
実はIPアドレスのソートの順番は私も気になっていましたが、対応するのを忘れたままでした。IPアドレスを数値でソートする処理は復刻版TWSNMPの開発時に作っていたので移植することにしました。
改善前は、

画像1

IPアドレスを文字列で比較するので何となく違和感のある順番になることがあります。数値で比較する処理

const cmpIP = (a,b) => {
 if (!a.includes(".") || !b.includes(".") ){
   return a < b  ? -1 : a > b ? 1 : 0 
 }
 const pa = a.split('.').map(function(s) {
   return parseInt(s); 
 });
 const pb = b.split('.').map(function(s) {
   return parseInt(s); 
 });
 for(let i =0;i < pa.length;i++){
   if (i >= pb.length){
     return -1;
   }
   if (pa[i] === pb[i]){
     continue;
   }
   if (pa[i] < pb[i]){
     return -1;
   }
   return 1;
 }
 return 0;
}

を組み込むと

画像2

のようにスッキリした順番になりました。
IPv6のアドレスの場合は文字列のままソートすることにしました。たぶん、大丈夫だと思います。ノードリストだけではなく、IPアドレスが表示されるデバイスレポート、IPアドレスレポートなどの画面にも組み込みました。
今日の開発は、

です。

利用者からのフィードバックは、自分では気づかなかったバグや忘れていたことに気づけて大変ありがたいです。

明日に続く

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。