BLOGTIMES
«Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 ·... | | Next»
2019/01/11

0.0.0.0/0 以外で IP 全てを表すには

networking 

ipset を使ったブラックリストに Deny ALL を設定しようと思って 0.0.0.0/0 を入力してみたら、ipset が受け付けてくれませんでした。

# ipset add BLACKLIST 0.0.0.0/0 ipset v6.38: The value of the CIDR parameter of the IP address is invalid

ネットワーク全てを 0.0.0.0/0 以外で表す方法がないかと思って調べてみると、以下の2行で設定できるということが分かりました。

ipset add BLACKLIST 0.0.0.0/1 ipset add BLACKLIST 128.0.0.1/1

0.0.0.0/1 + 128.0.0.1/1 = 0.0.0.0/0 になるわけ

直感的には変な感じがしますが、サブネットマスクと IP アドレスに関してきちんと理解していれば実用上はこれらが等価*1であることが分かります。

サブネットマスクが 0 の場合には、以下のように1行で表せます。

0.0.0.0/0 → 0.0.0.0 ~ 255.255.255.255

これと同じ範囲をサブネットマスクが 1 であらわそうとすると、以下の 2 行が必要になります。
つまりアドレスの範囲が真ん中で分断されているわけですね。

0.0.0.0/1 → 0.0.0.0 ~ 127.255.255.255
128.0.0.0/1 → 128.0.0.0 ~ 255.255.255.255

同様してサブネットが 2 だと以下の4行となります。

0.0.0.0/2 → 0.0.0.0 ~ 63.255.255.255
64.0.0.0/2 → 64.0.0.0 ~ 127.255.255.255
128.0.0.0/2 → 128.0.0.0 ~ 191.255.255.255
192.0.0.0/2 → 192.0.0.0 ~ 255.255.255.255

やろうと思えばサブネットマスクはいくつでも大丈夫ですが、エントリ数はサブネットを n とすると 2n 個になります

参考

  • *1: 厳密にはサブネットが長い方が優先的にマッチするので、0.0.0.0/1 や 128.0.0.1/1 の方が優先度が高い

at 01:44 |
2019/01/10

IPアドレスのリストからCIDR表現を作る(Ruby編)

ruby  networking 

大量の IP アドレスの始点と終点の組(例えば 192.168.0.0~192.168.0.255 のようなもの)組を上手に纏めて CIDR 表現を作る必要があったので、Ruby でスクリプトを書いてみました。

IP アドレスの範囲を扱うのに altmetric/ip_ranger 、IP アドレスの集約に ipaddress-gem/ipaddress を使っているので、あらかじめ gem install ip_ranger ipaddress でインストールをしておきます。

コード的にはこんな感じでしょうか。

ip_summarize.rb

#!/bin/env ruby require 'ip_ranger' require 'ipaddress' ranges = [] STDIN.each_line do |line| (s, e) = line.chomp.split(',') range = IPRanger::IPRange.new(s, e) ranges += range.cidrs end ranges = ranges.map{|net| IPAddress(net.to_cidr)} summarized = IPAddress::IPv4::summarize(*ranges).map{|i| i.to_string} summarized.each { |r| puts r }

実際の実行してみると、こんな感じになります。
IP の範囲は標準入力から1行毎にカンマ区切りで開始,終了のような感じで与えています。

echo "192.168.0.0,192.168.0.1 192.168.0.2,192.168.0.5 192.168.0.6,192.168.0.11 192.168.0.12,192.168.0.17 192.168.0.18,192.168.0.18" | ruby ip_summarize.rb 192.168.0.0/28 192.168.0.16/31 192.168.0.18/32

    at 23:23 |
    2019/01/10

    Twitter で違反を報告していると・・・

    twitter  antispam 
    Twitter 報告についての最新情報 - Twitter で違反を報告していると・・・

    Twitter ではポリシーに違反していると思われるツイートやアカウントを「違反の報告」を使って Twitter に知らせる機能があります。

    この機能は Twitter に対する一方通行な情報提供だと思っていたのですが、画像のような「報告についての最新情報」が通知欄に届いていてびっくり。いつの間にかこんな感じで経過報告を送るようになっていたんですね。


      at 20:34 |
      2019/01/09

      ZOZO 2Bスーツは返金対応してもらいました

      zozo 
      ZOZOTOWNカスタマーサポートセンターよりご連絡 - ZOZO 2Bスーツは返金対応してもらいました

      ZOZO が完全オーダーメイドのビジネススーツを販売開始ということで話題になった ZOZO 2Bスーツ

      ネタになるかなと思いつつ 7/7 に購入の申し込みをしたところ、なんと届いたのは年の暮れの 12/23 。届いたスーツは上着のの袖とパンツの丈がどちらも 4cm 近く足りないというどう見てもネタとしか呼べないような代物。オーダーメイドは原則返品はできず、サイズ直しでの対応ということで、自分の持っているジャストサイズのスーツと大きさを比べながら、がんばって直しの寸法を入力したのが年末の 12/24 のことでした。

      ところが、昨日になって作り直し対応になるので、納品までさらに約1ケ月半かかるというメールが来たので、さすがにそこまではつき合いきれないということで、返金対応をお願いしました。さすがにすんなりと認められましたが、本当に半年かけたネタでした。


        at 17:35 |
        2019/01/09

        今日は Windows Update 初め( 2019 年 1 月 )

        windows 

        まだ年が明けて間もない感じがしていましたが、今日は今年初めての Windows Update の日でした。
        内容については以下に記載がありますが、今回も沢山のパッチが入っているので早めに当てるようにしましょう。


          at 12:57 |
          2019/01/08

          1,500 円で始められるカリグラフィー用万年筆

          stationery 

          セーラー万年筆がカリグラフィー用の入門向けの万年筆「ハイエース ネオ クリア カリグラフィー*1」を出すようなのでメモ。

          カリグラフィー用の万年筆はペン先が幅広になっていて、線の太さが自在に調整できるようになっています。普段使いのペンとして使っても、ちょっと独特の字体になるので面白いんですよね。ペンの本体は透明で、中が透けて見えるタイプので、カラフルなインクを入れるとさらに楽しめそうです。

          セーラー万年筆、カリグラフィーを楽しめる1,500円の万年筆 - Impress Watch

          ペン先は、幅広にカットした"ブロードペン"タイプで、ステンレス製。ペン幅は、1.0、1.5、2.0mmの3種。蓋はアルミ製。胴はAS樹脂(透明)、大先はABS樹脂(透明)。本体サイズは、直径13.5mm、長さ136mm。重さは10.6g。


          at 23:04 |

          GitHub からのお年玉?

          github 

          GitHub の無料プランではこれまでプライベートなリポジトリを作ることができませんでしたが、その制限が明日から撤廃されるようです。
          collaborator はリポジトリにつき 3 人までという制限は残るようですが、個人的な git リポジトリが必要な場合にはこれで十分ですね。
          GitHub からのお年玉といったところでしょうか。

          New year, new GitHub: Announcing unlimited free private repos and unified Enterprise offering | The GitHub Blog

          GitHub Free now includes unlimited private repositories. For the first time, developers can use GitHub for their private projects with up to three collaborators per repository for free. Many developers want to use private repos to apply for a job, work on a side project, or try something out in private before releasing it publicly. Starting today, those scenarios, and many more, are possible on GitHub at no cost. Public repositories are still free (of course—no changes there) and include unlimited collaborators.


            at 08:06 |
            2019/01/07

            首都高の料金、2020 年から朝はさらに値上げへ

            expwy 

            首都高が混雑緩和のために、時間帯別の料金を導入するという話が出ているようです。
            ガシー(遺産)とか言われると、IT エンジニア的には負の遺産というイメージしかないのですが。。。。。

            首都高の料金、時間帯で変動させ交通量を調整へ : 社会 : 読売新聞(YOMIURI ONLINE)

            首都高の平日の交通量は現在、1日約109万台で、通行料金は最大1300円(ETC普通車)だが、関係者によると、首都高運営会社の試算では、普通車などの通行料金を午前6時~午後10時は500円上乗せし、それ以外の時間は半額とした場合、交通量が1日最大5万台(5%)減少するという結果が出たという。


              at 23:28 |

              Apple 仙台一番町が 1 月 25 日に閉店

              apple 

              東北唯一の Apple Store だった、Apple 仙台一番町が 1 月 25 日に閉店するとのこと。
              仙台くらいの人口だとやはりあまり採算がよくないということでしょうか。

              Apple 仙台一番町が1月下旬に閉店 東北唯一のアップルストア | マイナビニュース

              宮城県仙台市青葉区にあるアップルストア「Apple 仙台一番町」が1月25日(金)をもって閉店することが明らかになりました。東北エリア唯一のアップルストアとして2005年12月から約13年にわたって営業してきましたが、残念ながら今月で閉店となります。


                at 22:28 |
                2019/01/06

                固まるとシリコンゴムになる粘土 Sugru

                adhesive 
                Sugru 手練り成型粘土型(モールダブル)万能接着剤 高耐久・防水性 5g × 8個 使い捨てパック マルチカラー SMLT8

                しばらく前に購入しておいた固まるとシリコンゴムになるという粘土状の接着剤 Sugru を使ってみたので、その使い心地をメモ。

                袋から取り出した直後の固さは、ちょうど口に入れて噛んでいる状態のチューインガムくらいの固さで、溶剤の匂いがあり、表面は少しべたつきます。仕上がりで指紋等が気になる人はヘラなどを用意しておいた方がいいかもしれません。整形してから 1 日くらいで硬化しますが、固まったときの固さは、一般的なシリコンゴムよりもずっと固く、スマホのカバーなどに使われている TPU (熱可塑性ポリウレタン)くらいの固さといえばよいでしょうか。どんなものにもくっつくというのがウリになっていますが、しっかりとくっつけるにはそれなりの接着面積を確保する必要があります。

                使い方によっては非常に便利な素材ですが、分量あたりの値段の高さと、そこからくる分量の調整の難しさがネックでしょうか。まぁ、ニッチな商品なのでしょうがないといえばしょうがないのですが。


                  at 18:09 |
                  «Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 ·... | | Next»