読者です 読者をやめる 読者になる 読者になる

ひいらぎの日記

デザインはまた時間のあるときにやります!

HTML + JavaScript でちょっとだけ楽する

部活で、会議の議事録を書くという(多分誰も読んでいない)役割があって、そこに出席者の名前を列挙しなければいけなく…下に簡単に書いてみますと、

  1. 紙媒体で誰が出席してるかチェック

  2. その紙を見ながらパソコンでひたすら名前(名字)を打ち込んでいく

  3. 議題について書き込んでいく

2がとてもめんどくさいなと思っていました。

Macユーザーになる前は、WindowsのOffice(Word)上でフォームアプリケーション(でいいのかな? 手前にウィンドウ表示させてそこで作業するやつ)を作ってチェックボックスにチェックが入っている人の名字をボタン1つで本文に自動入力という感じのマクロを作っていたんだけど、Macに乗り換えてから、それができなくて、毎回人名を手で入力していました。

ちょっとでも楽したいので、ブラウザ上にチェックボックスを配置して、ボタンを押すと、出席者の名字を「、」で区切ったものをアラートしてクリップボードに入れてくれたら助かるかなと思ったので実装してみることにしました。(いちばんやりやすそうだったからブラウザ上にしたけど、他にも方法ないかな?)

できたもの

f:id:ymho_99:20170505205715p:plain

こんな感じ

Who is attend ?

です。ひいらぎファミリーが選択されています。 これをATTEND!すると、

f:id:ymho_99:20170505202847p:plain  こう返してくれる(全員名字がひいらぎだった…) まあ人数は別にいらないけど、なんとなくつけました。

クリップボードへの格納はできなかった(なんかブラウザの仕様でできるできないがあるらしくてめんどくさくなったのと、safariはalertの文章をクリップボードにコピーできる(人工的に)ので今回はやめました)。

所要時間は1時間くらいでした。 名簿は変更が容易にできることを前提として、名簿専用のjsを別に作りました。

index.html

main.js

member.js

style.css

の4ファイルでできてます。mainは主にATTEND!の挙動について、memberは名前一覧、それをindex.htmlのfor文でチェックボックスをくるくる表示してる感じです。 CSSについては、

qiita.com

このページを参考にさせていただきました〜m(__)m

f:id:ymho_99:20170505204117p:plain  [“所属”,”名前”]みたいな感じです。

難しかったこと

選択画面ではフルネームを表示させて、alertするときには苗字だけに文字列をカットするのに、substringで開始位置を0に指定して、indexOfで半角スペースを見つけそれを終了位置にするところで少し手こずった。 それくらい…です。

githubに置いてるのでソースを見たい方はそちらからどうぞ

github.com

学んだこと
membersList[i][1].substring(0,membersList[i][1].indexOf(" "))

とすれば、開始位置は先頭、indexOfの引数の文字の直前が終了位置となって配列の要素それぞれに対し任意の文字を取り出せる。それも含んで、

<form class="FORMBOX" name="XXX">
            <script type="text/javascript">
                for (i = 0; i < membersList.length; i++) {
                    document.write("<input type=\"checkbox\" value=\"" + membersList[i][1].substring(0,membersList[i][1].indexOf(" ")) + "\" id=\"" + i + "\">");
                    document.write("<label for=\"" + i + "\" class=\"checkbox\">" + membersList[i][0] + ": " +membersList[i][1] + "</label>");
                }
            </script>
</form>

htmlにこう書くとmember.jsに登録されている名前の数だけcheckboxを生成できそう。

書き方に関しても、もっといい方法ないかすごく気になるけど、とりあえず、本を欲しいなあ!

www.amazon.co.jp

自宅でルーターを作りたい!その3 〜いろんなアドレス〜

ymho99.hatenablog.jp

前回、前々回とRouting tableについて調べて、なんとなく意味が分かるようになった。 今回はもうちょっと幅を広げてルーターについて調べてみることにする。

3 Minutes Networking No.28

まず、データを転送するとき、宛先IP・MACアドレス、送信元IP・MACアドレスの4つが必要なのだそう。ここでまた一つ疑問。IPアドレスMACアドレスの違いは何なのだろう?両者とも、ぼやっとしたイメージでしか理解してこなかったなあ。

改めて調べてみよう。

IPアドレス

同じサイトでIPアドレスについてまとめられているページがあった、ここを参考にしよう。

3 Minutes Networking No.21

論理アドレスの代表格だそう。論理アドレス?これもよくわからない…調べてみた。論理アドレスの他には、物理アドレスというのがあって、これと対比して考えてみよう。 物理アドレスは、ユニークなビット列で、そのアドレス自体にはなんの意味も持たないらしい。対して論理アドレスはアドレス自体に「何処の・誰」という情報が含まれているらしい。 ほうほう、違いははっきりした!

さらにその情報は「階層型」といってどんどん積み重ねていくことが可能なのか!

f:id:ymho_99:20170429200032g:plain

また画像をお借りしましたm( )m この画像でいう2番のPCなら、ネットワークA内ネットワークA1内ネットワークA1a内2番っていうアドレスになるわけで、この情報が論理アドレス自体がもっている、という理解でいいかな。

サイトを読み進めていくと、MACアドレスとの対比をしながら説明されていたので、ここで一旦MACアドレスについて調べに行くことにしよう。

MACアドレス

www.pc-master.jp

こちらのサイトに例を交えてわかりやすく解説されていました。 はじめの一文でなるほどってなった。

MACアドレスとは、 ネットワーク機器やネットワークアダプタに付いている固有の識別番号です。 LANで接続されている機器やLANの増設アダプタには製造段階で必ず付けるようになっています。 MACアドレスは 0~9、A~Fの16進数で、A0:B2:D5:7F:81:B3 のように表されます。 最初の A0:B2:D5 がベンダーIDといい メーカー名になります。 次の 7F が機種ID、最後の 81:B3 がシリアルIDです。 機器の側面に A0B2D57F81B3 のように連続して記載されていることもあります。 固有の識別番号なので グローバルIPアドレスと同じく 組み合わせは重複しないようになっています。

なるほど、機器が製造されたときに与えられた番号なんだ!PC、ルータ、モバイル端末、なんとハブにまで、MACアドレスが割り当てられているみたい。 ネットワークに入ることができる機器には必ずMACアドレスがあるんだ!

このアドレスは永久的に不変で、IEEEという組織がつけたベンダー(企業)IDとそのベンダーが定めた識別番号によって成り立っているから、すなわちユニークなんだ。この値には通信を行う上での情報はない だからこれは物理アドレスなんだ。

とりあえず、MACアドレスについて理解できたので先程のページに戻って読み進める。

MACアドレスはすでに定められているのに対し、IPアドレス論理アドレス)はネットワーク管理者が自由につけることができるらしい。 また、MACアドレスは機器に対して1つなのに対し、IPアドレスは各機器のネットワークの接続点ごとにつけられているのか。

更にまとめると、

  • IPアドレスネットワークの各機器の接続点ごとにつけられ、例えば、同一ネットワーク内においてNICを取り替えても接続点のIPアドレスは同じ値を持つ。ただし、所属するネットワークが変わると、IPアドレスは変化する。

  • MACアドレス各機器に与えられているユニークな名前のようなもので、NICを取り替えれば値が変わってくる。なんとなく、物理アドレスの「物理」のイメージがつかめた気がする。

更にその下を読み進めます。 論理アドレスは「どこの+だれ」という形になっているらしい。もうちょっと詳細にいえば、「所属するネットワークの番号+ホストの番号」で、当然、所属するネットワークの番号は、接続されているすべてのネットワークでユニークでなければならず(でないと宛先が複数あっておかしなことになるからだと思う)、ホストの番号は所属するネットワーク内でユニークあればいいことになる。

とある2つのネットワークが存在して、接続されているとき、両者の名前は同じであってはならない。 そして、例えば「A」と「B」というネットワークが独立していて、つながっていない場合、それぞれのネットワーク内に「C」という同名のホストが存在してもよいという解釈で合ってるかな。

結局、論理アドレスはすべてユニークであればよいことになるんだなあ!(「C」という同名のホストがあったとしても「所属するネットワークの番号+ホストの番号」で表したときにネットワークの番号である「A」と「B」は違うから、組み合わせるとこれらの論理アドレスは同一でなくなる) これ、足りなくならないのかなと思うけど考えないでおこう…

IPアドレスMACアドレスの違いを理解できたので、本題であるデータのやり取りについて考えていこう。

3 Minutes Networking No.21

このサイトを読み進めていくと、IPアドレスについての項があって、読んでみると、

今現在使われているバージョンは4で将来的には6に変わる

という文に目がついた。これがIPv4とかIPv6とかを表しているのかなあ? となるとこの両者の違いを調べずにはいられないので、ぐぐってみる。

IPv4IPv6

http://www.ncom.ad.jp/images/ipv4v6.pdf

ここにわかりやすい絵と解説がありました! そもそも、IPアドレスは2進数で、terminalとかで見れるやつは10進数16進数に直したものらしい。基数変換はもう学校で習ったのですぐ理解できた。 例えば「192.168.0.1」を2進数に直すと「11000000.10101000.00000000.00000001」となる(ここでのピリオドは区切り!)。 これはバージョン4で、4桁の数字が使われ、32ビットで表現されている。先程考えた、どの範囲でユニークであればよいか〜とかを踏まえて、このバージョンでは最大約42億台のコンピュータが利用できることになるらしい。 対してバージョン6は16桁の数字が使われ128ビットで表現されている。例えば、「2404:6800:8003:0:0:0:0:6a」は16桁。これは桁数が4倍になったので、424億台のコンピュータが利用できることになるらしい。 コンピュータが増えてきて、「ユニーク」に限界が来たからなのかな?とりあえず、そう思うと、さっき浮かんだ「足りなくなるのでは?」という不安がまた当分改善されそう。

そんなことを考えながらもう一度「IPv4IPv6」の検索結果一覧を見ていると面白いページを見つけた。

7 インターネット10分講座:IPv6 - JPNIC

このページでは両者の違いについてこう書かれていました。

具体的な話としては、

グローバルIPアドレスの数が多い

セキュリティ機能を標準で装備している

エンドユーザーの設定が簡単

の3点が大きな違いです。ほかにも色々と違いはあるのですが、これらに比べるとあまり大きな差ではありません。IPv6にしかできないこと、というのはほとんどありませんが、IPv4ではオプション扱いだった機能が標準装備とされ、便利になりました。

グローバルIPアドレス」?今まで使ってきたIPアドレスという言葉と何が違うのだろう…ここでまたこのワードで検索をかける。

www.pc-master.jp

このページでわかりやすく解説がされていました。 まとめてみると、IPv4アドレスが枯渇してゆき、1980年代から爆発的なコンピュータブームにより、42億のアドレスが足りなくなるのではないかという懸念がされるようになり、グローバルIPアドレスプライベートIPアドレスという区別をしようということになった。

グローバルIPアドレス

契約しているプロパイダにつき1つ割り当てられるもので、固有のものであり世界中で重複することはない。モデムやルーターの電源を入れなおすとグローバルIPアドレスが変わることもある。

プライベートIPアドレス

1つのネットワーク内で機器を識別するためのIPアドレス、で各ネットワーク内で重複することはないが、独立した別のネットワークでは同名のものが存在する可能性があるもの。

家にあるプロパイダと契約しているルータが1つあるとすれば、グローバルIPアドレスは1つで、そのルータに接続されている各PCに対して与えられているのがプライベートIPアドレス(あくまでのルータとPC間、ルータとルータ間などでやりとり)、という解釈でいいかな。

このサイトにはこんな感じで書いてあった。

グローバルIPアドレス − @IT ネットワーク用語事典

グローバルIPアドレスとは、インターネットで相手と通信するために持つ、ほかのアドレスと重複しない一意のIPアドレスのこと。TCP/IPでは、通信相手を特定してIPパケットを送信したり、ルーティングするために必要となる。

 グローバルIPアドレスが登場した背景には、IPv4IPアドレス枯渇問題がある。IPv4IPアドレスは32ビットで、おおよそ43億個のIPアドレスを割り当てることができる。しかし、1980年代以降にインターネットが爆発的に成長した結果、IPアドレスを必要とする端末が急増し、43億個だけではいずれ枯渇するのではないかという議論が持ち上がった。

 そこで、すべての端末がインターネットからアクセスできる必要はないという概念により、LAN内のコンピュータには一定の範囲のIPアドレスをプライベートIPアドレスとして割り当てる方針が立てられた。そして、そのLANとWANを接続する機器にのみグローバルIPアドレスを割り当てる形が確立されたのだ。

なるほど、ところでLANとWANって何が違うんだろう?家のルーターの裏をみるとLANとWANの差込口がある。さらにさらに寄り道になるけど、気になったので調べよう。

www.wanichan.com

LAN

Local Area Networkといって、ローカルなエリアでのネットワークという意味らしい。つまりこれが、さっきのプライベートIPアドレスが使用される範囲ということか!

WAN

Wide Area Networkといって、遠く離れた場所がつながっているネットワークらしい。なるほど、これがグローバルIPアドレスでやり取りされるareaということね!

だから、ルーターのWAN口は1つでLAN口はたくさんあるんだ!

自分のグローバルIPアドレスを確認するサイトに出会った。使うかわからないけど一応ここにリンクを貼っとこう。

www.pc-master.jp

何の話だったかな?そうだ、IPv4IPv6の違いを調べていたんだった。割りと理解できたので、例のサイトに戻ってさらに読み進めよう。

IPv4アドレスの例で、さっきもあげた 「192.168.0.1」(16進数)、「11000000.10101000.00000000.00000001」(2進数)

もともとIPアドレスは「どこの+だれ」を表していると知りましたが、この32ビットの数列を16ビットずつに2つに区切ると、まさに前半が「どこの」、後半が「だれ」を表すようになっているらしい。

ネットワーク番号:1100000010101000 ホスト番号:0000000000000001

少し疲れてきたのでここまでにしとこう… 今日はルーターの動作を知るつもりだったけど様々なアドレスについての勉強がメインだった。 確実に理解が捗っているのでこの調子で頑張ろう〜

P.S.

IPv4IPv6には相互互換がないらしい…互換性を持たせる方法的なものがいくつか見ましたが、こちらについては別の機会に触れよう!と思ったことを忘れないようにここに書いておきます。

自宅でルーターを作りたい!その2 〜続Routing table〜

昨日はRouting tableを読むために、用語をひたすら調べるなんてことをやりました。

ymho99.hatenablog.jp

今日はその続きで、実際にRouting tablesにかかれている、127.0.0.1と192.168.0.1について詳しく見てみることにします。 あらためてterminalでnetstat -rnを打ち込む。 あれ〜ぜんぜん違うぞ、学校のwi-fiに繋いでいるとルータが違うからそらそうか!

いまはとりあえず、昨日のRouting tableをもとに調べていこう。

f:id:ymho_99:20170428105148p:plain

昨日読もうとしたサイトをもう一度訪ねます。

3 Minutes Networking No.30

最初に読んだときには飛ばしていましたが、改めて気になる図を発見(画像をお借りしましたm( )m)! f:id:ymho_99:20170428105342g:plain 図の中にありますね、127.0.0.1と192.168.0.1。

あと、127.0.0.0はループバックアドレスといって、パソコン内部のネットワークのアドレスだそう。このパソコンの住所ってことでいいかな。

これを踏まえると、192.168.0.2(自分自身)が、ゲートウェイ(宛先)127.0.0.1に設定されていて、これは内側に向かってパケットが送られていることが分かる。

そして次に、

え~っと、パケットの送り先であるゲートウェイは192.168.0.2。 自分自身ですけど?

まぁこれは、特に決められていない、とでも考えてもらおう。 出口となるポートは、192.168.0.2、つまり自分のNICだ。

うーん、NICってなんだろう? またここでググる

wa3.i-3-i.info

どうやらネットワークカードのことらしい。これはPCの蓋を開けたら入ってるやつ、ということかな。

理解が浅はかですがとりあえず次にいきます。

と思ってふと自分のPCのRouting tablesを眺めてみると、192.168.0.2なんてものが存在しなかった!

うーんと、画像とDestinationが同じなのは 255.255.255.255/32 だけど…これのゲートウェイはlinke#4になってる… そうか!前回確かこれについて調べた。

なんとなく気になったのが「link#4」これはなんだろう? 21.2. ゲートウェイと経路 ここを読んでみたけどよくわからない… こんなページを発見!もろlink#4のことについて聞いてるみたいね! macos - What's the meaning of link#4 in mac's route table? - Super User 唯一のネットワークホスト上で動作するアドレスが物理的に接続されています。 翻訳を駆使して()読んでみると、物理的に接続されたいたらlinkと表示されるみたい。その後に続く番号は、マシンの4つ目のイーサネットカードのことを指しているという解釈でいいのだろうか… さてさて、次はUseの値が大きいものを見ていくことにしました。 0が並ぶ中で、127.0.0.1と192.168.0.1が5000や2000を超えていてよく使われているみたい。 これについては最初に見ていたサイトに戻って解説を読むことにします。 3 Minutes Networking No.30 と思ったけど、今日はここまでにしとこ。 この先踏み込むと、やめられなくなりそう…

自宅でルーターを作りたい!その1 〜Routing table〜 - ひいらぎの日記

ここで出てきた物理的に接続されているイーサネットカードこそがNICであるということかな?

www.sophia-it.com

イーサネットカード NIC」で検索すると上のページに巡り会えた。繋がった! 理解が進んでいることを実感できて嬉しい(≧∇≦)

送り先(NIC)が同じネットワーク内(同じマシンなので当然)でルータを経由する必要が無いからこういう書き方をしているのかな!とりあえず、そう解釈。

もう一度Routing tablesを眺める。

f:id:ymho_99:20170428105148p:plain

この時点でlink#4と書かれているものはすべて同じネットワーク内で送受されていることがわかった。

ではそれ以外を攻める。

先程のサイトを読み続けるとブロードキャストという語が出てきた。聞いたことはあるけど説明しろ!って言われたらできないので改めて調べてみる。

www.itbook.info

こんなページに巡り会えた。

同一ネットワーク上のすべてのホストに対して通信を行う場合に宛先アドレスとして使用されます。 ただし、「コンピュータなどのホスト」に対して設定することは出来ません。

このPCでいう、127.0.0.0内のネットワークのホストすべてに対して通信するときの宛先という意味かな。

ところでホストって何だったっけ?

www.infraexpert.com

ホストについてというより、ルーターについて詳しく解説されているサイトを見つけた。これは後で見そうだから貼っておこう。

ホスト - インターネット用語辞典 - | OCN

あとに見つけたこのサイトでは

ホストとは、ネットワークを通じて端末から送られてくる要求を処理し、端末にその処理結果を提供するコンピュータのこと。

あれ、じゃあパソコンってことかな? 更に読み進めると、下の方に、

インターネットにおいて、ホストといった場合には、ネットワーク上に接続された様々な機器のことを指し、コンピュータのことだけでなく、プリンタやルータのことも含まれます。

なるほど!同一ネットワーク内のホスト、とはそのネットワーク内のPC、プリンタ、ルーターなど、要求を処理するものひとつひとつという意味か!

ここでもとの話に戻って、 「コンピュータなどのホスト」という言葉にルータやプリンタは含まれているのかなあ?これがわからない… これはいまは放置…。

同一ネットワーク上のすべてのホストに対して通信を行う場合に宛先アドレスとして使用されます。

うん、もう一回この文章を読むとなんとなくつかめてきた。

ここでもう一度もとのサイトを見てみる。

f:id:ymho_99:20170428105148p:plain

サイトではdefaultゲートウェイについて説明がなされているが、これは前回理解した。

Destination 対象となるネットワークまたはホスト。「default」はデフォルト・ゲートウエイを表す。この、デフォルト・ゲートウェイというのは、地図に書いていない場所(異なるネットワーク)に行こうとしたときに選択させるってことだと、思う。

自宅でルーターを作りたい!その1 〜Routing table〜 - ひいらぎの日記

これこれ。

ふと、このページの冒頭の「ルーティングテーブルとは」とう文章が目についた。

改めて読んでみると、読める読める!! はじめは何を説明しているのかわからなかったけど、いま読んでみるとすごく読める。 全部じゃないけど意味が分かる!

ルーティングテーブルとは、ルータやPC端末が保持するネットワークの経路情報のことです。ルーティングテーブルには宛先ネットワークアドレスと、その転送先が登録されています。 ネットワークに接続する端末が、ある端末に向けデータを送信しようとするとき、その端末は送信先端末のIPアドレスと自らが保持するルーティングテーブルを参照し、そのデータを送信する宛先を決定します。送信先端末IPアドレスが自らの所属するアドレスと同じネットワークに所属する場合は、直接その端末宛にデータを送信しますが、ルーティングテーブルに登録のないネットワークに所属しているときは、そのデータをデフォルトゲートウェイあてに送信します。現在のネットワークの場合、そのデフォルトゲートウェイにはルータが使用されていますが、そのデータを受信したルータは、データに書かれた宛先ネットワークアドレスと自分の保持しているルーティングテーブルを参照し、転送先を決定し実行します。この時、送信先ネットワークアドレスが、自分のルーティングテーブルにないものだった場合、ルーターはやはりデフォルトとして設定しているルータ宛にそのデータを転送します。こうしてバケツリレー式に転送され、宛先のアドレスを登録しているルーティングテーブルを持ったルータに到達したデータは、ようやく目的の端末に届けられることが出来ると言う訳です。 それでは、その宛先IPアドレスが、この世に実在しないアドレスだった場合、そのデータは永遠に転送され続けるのかというと、そうではありません。現在のIPv4のネットワーク世界では、ルータによる転送は最大255回までと制限されています。それを超える場合はそのデータは破棄されてしまいます。

自宅でルーターを作りたい!その1 〜Routing table〜 - ひいらぎの日記

意味がわからなくて悩んだのはつい昨日の話なのに…

喜ぶのはこのへんまでにして、さらに例のサイトを読み進める。 と思ったら一応読破したみたい。

おっ、このサイト他にもページがあってルーターについても解説されているみたい。

3 Minutes Networking No.28

次はここを読んでさらに理解を深めよう!

自宅でルーターを作りたい!その1 〜Routing table〜

自宅でルータを作ってみてください

情報系の科目が全然ない中、電気に行こうか情報にいこうか相談しに訪ねた先生がこれを提示してくれました。サーバーについては最近学びたかったのでいい機会になると思いました。 まず、「ルーティングテーブル」について調べてみてとのことで、調べてみました。自分なりにまとめたやつをここに書いときます(備忘録ってやつですか?w)。 それでググっても意味の分からない語がいっぱいでこれは1個1個理解しないと進めないと確信したのでまずは知識をつけます。

最初に訪れたサイトにはこう書かれていました。 ルーティングテーブル とは|専門用語集

ルーティングテーブルとは、ルータやPC端末が保持するネットワークの経路情報のことです。ルーティングテーブルには宛先ネットワークアドレスと、その転送先が登録されています。 ネットワークに接続する端末が、ある端末に向けデータを送信しようとするとき、その端末は送信先端末のIPアドレスと自らが保持するルーティングテーブルを参照し、そのデータを送信する宛先を決定します。送信先端末IPアドレスが自らの所属するアドレスと同じネットワークに所属する場合は、直接その端末宛にデータを送信しますが、ルーティングテーブルに登録のないネットワークに所属しているときは、そのデータをデフォルトゲートウェイあてに送信します。現在のネットワークの場合、そのデフォルトゲートウェイにはルータが使用されていますが、そのデータを受信したルータは、データに書かれた宛先ネットワークアドレスと自分の保持しているルーティングテーブルを参照し、転送先を決定し実行します。この時、送信先ネットワークアドレスが、自分のルーティングテーブルにないものだった場合、ルーターはやはりデフォルトとして設定しているルータ宛にそのデータを転送します。こうしてバケツリレー式に転送され、宛先のアドレスを登録しているルーティングテーブルを持ったルータに到達したデータは、ようやく目的の端末に届けられることが出来ると言う訳です。 それでは、その宛先IPアドレスが、この世に実在しないアドレスだった場合、そのデータは永遠に転送され続けるのかというと、そうではありません。現在のIPv4のネットワーク世界では、ルータによる転送は最大255回までと制限されています。それを超える場合はそのデータは破棄されてしまいます。

全然理解できない… ということでもう少し詳しく調べてみました。

3 Minutes Networking No.30

するとこんなサイトに出会いました。

いろいろ頭の中を整理〜。

ルータ

ネットワークとネットワークの最適ルートを選択して繋いでくれる、この最短ルートを見つけることをルーティングという。

ルーティングテーブル

ルーティングするときに見る地図のようなもの、これをもとに宛先のルートを選択する。 netstat -rn をterminalで実行するとRouting tablesなるものが表示された。 f:id:ymho_99:20170427173924p:plain なるほど、これが地図なるものか。 この見方がわからないので、一旦そっちを調べてみよう。これを参考にまとめてみた。

Linuxコマンド集 - 【 route 】 ルーティング・テーブルを表示・設定する:ITpro

Destination

対象となるネットワークまたはホスト。「default」はデフォルト・ゲートウエイを表す。この、デフォルト・ゲートウェイというのは、地図に書いていない場所(異なるネットワーク)に行こうとしたときに選択させるってことだと、思う。

Gateway

ゲートウエイのIPアドレス。「*」は設定されていない。 ん、ゲートウェイってなんだ…ここでさっきのサイトに戻る。 ああ、パケットをどこに送るかの宛先のことだった。でも、同じネットワーク内でのやり取りにはどんなものがあるのだろう??

Flags

ルーティングのフラグ。「U」はルーティングが有効,「H」は対象がホスト,「G」はゲートウエイ,「R」は回復される動的なルーティング,「D」はデーモンまたは置き換えによって書き換えられるルーティング,「M」はルーティング・デーモンまたは置き換えによって書き換えられるルーティング,「A」はaddrconfで設定されたルーティング,「C」はキャッシュのエントリ,「!」は拒否を表す

ほほう、こう区別することで何かいいことがあるのだろうなきっと。とりあえず、今はいいかな…

Refs

ルートの参照数を表しているそう。defaultのrefsは、今PC上で異なるネットワークへの道がどれだけ開かれているのかを表しているのかな?試しにメールアプリを終了して、もう一度コマンドを再入力してみた。すると51だったのが33になった。うん、なるほど、とりあえずこういう解釈でいいのかな。と思ったけど、もう一回メールアプリを起動すると12になってた。あれ、おかしいなあ〜。 10秒くらい時間をおいてもう一回。今度は18になってる。あそうか、常に通信しているわけじゃないのか、こちらがリクエストを送ったとき(あるいはアプリが自ら)だけ道が開かれるなら、時間によって変動する理由もわかる。意図的に違うアプリを起動してみるとやっぱり増えた。いまいち判然としないけど、いまはそういう解釈でいよう。

Use

ルーティングの参照回数だそう。うーむ、わかんないな。もうちょっと調べる。

ネットワークコマンド使い方:route 〜ルーティングテーブルの表示/設定を行う - @IT

こんなサイトがあった。ここには、経路が使用された回数とある、そらそうか。ルーティングとは最短経路を見つけることだから、その参照回数といえば、それが使用された回数となるわけか。

Netif

むむむ、これもよくわからない。かなり時間をかけてやっと見つかった。

http://www.ie.u-ryukyu.ac.jp/~e075730/rep/info1-rep1.pdf

ネットワークインターフェイス名だそう。またわからない用語が出てきたので調べる。

ネットワークインターフェイス - 意味・説明・解説 : ASCII.jpデジタル用語辞典 2つのプロトコル間でのデータやパラメーターの受け渡し、結果の受け取りのための規約がインターフェイスである。(抜粋) なるほど…プロコトル間でのデータのやりとりについて決められているのね。 プロコトル、は理解しているつもりなので想像がつきやすくてよかった。

Expire

この経路情報の有効期限、だそう、もうこれは単語からなんとなく想像できそうな。タイムアウト時刻の判定に使われているんだ!

とりあえず、これでRouting tablesにかかれている内容が読めるようになったぞ。 じゃあ次に実際にリストに含まれている部分について見ていこう!

もう一回見ると、なんとなく、さっきより簡単に見える・・・! 一つ一つみてもいいけど、なんとなく気になったのが「link#4」これはなんだろう?

21.2. ゲートウェイと経路

ここを読んでみたけどよくわからない… こんなページを発見!もろlink#4のことについて聞いてるみたいね! macos - What's the meaning of link#4 in mac's route table? - Super User

唯一のネットワークホスト上で動作するアドレスが物理的に接続されています。 翻訳を駆使して()読んでみると、物理的に接続されたいたらlinkと表示されるみたい。その後に続く番号は、マシンの4つ目のイーサネットカードのことを指しているという解釈でいいのだろうか…

さてさて、次はUseの値が大きいものを見ていくことにしました。 0が並ぶ中で、127.0.0.1と192.168.0.1が5000や2000を超えていてよく使われているみたい。 これについては最初に見ていたサイトに戻って解説を読むことにします。

3 Minutes Networking No.30

と思ったけど、今日はここまでにしとこ。 この先踏み込むと、やめられなくなりそう…

GitHub pagesでポートフォリオ的なものを作りたい!

これまではwixに行ったり、tumblrに行ったりしていましたが、友達からGitHub pagesのことを聞いてやってみることにしました。
なんだかんだできたサイトがこちらです。
gitにまだ慣れてなくて上手くいかないことが多かったのでそれはまた明日書きます。
なんか熱っぽい中、移動しながら作ったこともあって、今日はもう頭がガンガンするので寝ます。

四国に行った!

日帰りで四国に行ってきた。今日は友達と2人。

姫路駅から岡山県まで,黄色い電車に乗った。

岡山駅から瀬戸大橋を渡って,あっという間に高知駅マリンライナーに乗ったけど,めっちゃ早かった。

こんな電車↓

f:id:ymho_99:20170401203630j:plain

高知城を回って,香川県に移動した。

香川といえばうどん!ということで,お昼は当然うどん!ノープランでお店を決めていなかったので,電車で移動しながら決めた。次は絶対計画立てよう!

どーん!

f:id:ymho_99:20170401203948j:plain

すごいボリューム...!

麺の「こし」がとってもよくて美味しかった。

お腹いっぱいになったところで,丸亀城を登った。f:id:ymho_99:20170401204602j:plain坂がすごかった。見るだけで登る気失せて...しかも気温が高くて暑かったし。

上から見た景色はこんな感じ!

f:id:ymho_99:20170401204228j:plain

天気が悪くて本当に残念...お次は琴平へ。

こんぴらさんの愛称で親しまれている,金刀比羅宮へ。ここは,昔来たことがあるけど,奥社までは行けなかったのでリベンジも兼ねて!

琴平「驛」はこんな感じ!セブンイレブンが黒色で京都っぽかった(笑)

f:id:ymho_99:20170401205025j:plain

f:id:ymho_99:20170401205052j:plain

階段をひたすら登ります。丸亀城を登った後なので足に疲れが...

途中まで登ったとこです(↓)まだ半分以上あるかな??この景色は,昔の記憶にすごく鮮明に残ってて懐かしかった。

f:id:ymho_99:20170401205058j:plain

写真を撮る余裕もなく,奥社まで登り続けた。もっと撮ればよかった...

f:id:ymho_99:20170401205039j:plain

ようやく奥社まで行けました!景色最高!でも、雨。傘さして登ったくらい。

でも...ここに来るまでに,地元のお友達とすれ違った気がしたけど,登ることに必死でちゃんと確認できんかった。お友達って言うけど,本当はそうじゃないかも。まあいいや。

帰りは,かなりバテてた,琴平から出てる岡山行き電車に乗った。こんなとこまで岡山行きが来ていることに本当にびっくり!姫路行き電車では大量の人混みに流されて,立ってるのは本当に辛かったけど,そのほとんどが高島駅で降りた。これ覚えとこ!

もうそこからは寝かかっててあんまり覚えてない,けど,もうこれで友達は受験やし,しばらく会えへんのかなあと思って内心悲しかった。

 

P.S

その4日後くらいににカラオケに行けたので,案外すぐ会えた。でもそれ以来。。

 

SublimeTextでLaTeXを使いたい!

TeXのファイルを作成するにあたって、「MacTeX 2016」をインストールし「Tex Shop」を使用していましたが、かねてからソースコードの作成に使用していたSublime Textを用いたいと考えていました。
インターネットで検索すると、「LaTeX Tools」を使用する方法が多数載ってましたが、どうやら古い情報が多く、現在仕様が変更されているものがけっこうあったので、ここで2017年3月の時点での方法をやった通りに書いてみます。
これから記す方法は、「LaTeX Tools」を用いることはせず、Sublime Textに新しい”Build System”を定義することでコードの記述とコンパイルができる、というものです。
こんな状態で始めました。

  • TeX/LaTeXの環境が整っている(以前、「TeX Shop」を使っていたのでMac Tex 2016がインストール済みでした)

以下の手順でやってみました

f:id:ymho_99:20170401211750p:plain
build systemを定義下の画像のような記述が現れたので,ひとまずこれを置き換える。
f:id:ymho_99:20170401212026p:plain

{
"selector": "source.tex",
"shell": false,
"cmd":[
"/bin/sh", "-c", "/usr/local/texlive/2016/bin/x86_64-darwin/platex $file_base_name.tex && /usr/local/texlive/2016/bin/x86_64-darwin/dvipdfmx -p a4 $file_base_name.dvi && /usr/bin/open $file_base_name.pdf"
]
} 

MacTex2016でインストールされたものを参照してるっぽいので,もし,自分のバージョンがわからない時[ls]で/usr/local/texliveを参照して出てきたフォルダ名がバージョンかな...

[⌘(command)]+[S]で名前を「LaTeX2016」として保存すると,これがBuild Systemの一覧に表示された。
[⌘(command)]+[B]でコンパイル。pdfビューアーが自動的に開いて、コンパイルできた。
構文エラーがあれば,画面下のコンソールに内容が表示されそう。
f:id:ymho_99:20170401220918p:plain
f:id:ymho_99:20170401221240p:plain

P.S

Sublime Textのパッケージに「LaTeX Tools」なるものがあると前述しましたが、これを導入しておくと、以下のようにコンパイルせずとも、数式が表示される機能を利用できることに気づきました。
f:id:ymho_99:20170401221243p:plain
これはすごい!