Home

NLA の実行結果

2013-09-28 11:25:46

ちょっと変なところがあったので、こそこそ修正しつつ。

仕事場 ( ドメイン環境 ) で試してみたところ、VMware の仮想ネットワークが入っているせいか、うまく取得できないという結果になりました。Offset を取りながらループする、ってコードなんですが、同じデータを取得し続けるようで無限ループに。

なお、VMware の仮想マシンとして構築しているドメイン環境では、無事に NLA_NETWORK_MANAGED が取れました。信頼されてるはずの『ホームネットワーク』やら『社内ネットワーク』は NLA_NETWORK_UNMANAGED。ドメインに参加してるかどうかがポイントになるようです。

あとは、会社の VPN につなぐようなところだとどうなるのかな? ってくらいでしょうか。実際のところ、あんまり使うことはなさそうですし、とりあえず、こんなところで。

Go to TopGo to Top

管理されたネットワークの判定

2013-09-26 21:05:32

どこで使うんだ、って話はあるんですが、『管理されたネットワーク』かどうかを判定するのには、NLA ( Network Location Awareness ) というあたりの処理を利用します。

とりあえず、こんな感じで NLA_NETWORK_UNMANAGED って結果が取れました。自宅環境ではドメイン組んでいないので、『管理されたネットワーク』にはならないみたいです...。


  #include "stdafx.h"
  #include <winsock2.h>
  #include <mswsock.h>
  #include <Windows.h>

  #pragma comment (lib, "ws2_32.lib")

  int _tmain(int argc, _TCHAR* argv[])
  {
    WSADATA      wsd;
    char         buf[16384];
    int          ret;
    DWORD        size;
    WSAQUERYSET *pWsaqs = NULL;
    GUID         NLANameSpaceGUID = NLA_SERVICE_CLASS_GUID;
    HANDLE       hLookup;
    PNLA_BLOB    pBlob;
    DWORD        offset = 0;

    ret = ::WSAStartup(MAKEWORD(2, 2), &wsd); 
    if (ret != 0) {
      printf("WSAStartup() error 0x%0.8X\n",
        ::WSAGetLastError());
      goto fin;
    }

    pWsaqs = (WSAQUERYSET *)buf;
    ::memset(pWsaqs, 0, sizeof(*pWsaqs));
    pWsaqs->dwSize = sizeof(WSAQUERYSET);
    pWsaqs->dwNameSpace = NS_NLA;
    pWsaqs->lpServiceClassId = &NLANameSpaceGUID;

    ret = ::WSALookupServiceBegin(pWsaqs,
                                  LUP_RETURN_ALL | LUP_DEEP,
                                  &hLookup); 
    if (ret == SOCKET_ERROR) {
      printf("WSALookupServiceBegin() error : 0x%0.8X\n",
        ::WSAGetLastError());
      goto fin_cleanup;
    }

    while (TRUE) {
      ::memset(pWsaqs, 0, sizeof(*pWsaqs));
      size = sizeof(buf);

      ret = ::WSALookupServiceNext(hLookup,
                                   LUP_RETURN_ALL,
                                   &size,
                                   pWsaqs); 
      if (ret == SOCKET_ERROR) {
        ret = ::WSAGetLastError();

        if (ret == WSA_E_NO_MORE) {
          break;
        }

        printf("WSALookupServiceNext() error : 0x%0.8X\n", ret);
        goto fin_service_end;
      }

      if (pWsaqs->lpBlob == NULL) {
        continue;
      }

      do {
        pBlob = (PNLA_BLOB) &(pWsaqs->lpBlob->pBlobData[offset]);

        switch (pBlob->header.type) {
          case NLA_CONNECTIVITY:
            printf("NLA_CONNECTIVITY\n");
            switch(pBlob->data.connectivity.type) {
              case NLA_NETWORK_AD_HOC:
                printf("  Network Type: Ad Hoc\n");
                break;
              case NLA_NETWORK_MANAGED:
                printf("  Network Type: Managed\n");
                break;
              case NLA_NETWORK_UNMANAGED:
                printf("  Network Type: Unmanaged\n");
                break;
              case NLA_NETWORK_UNKNOWN:
                printf("  Network Type: Unknown\n");
                break;
            }
            break;
          default:
            break;
        }
        offset = pBlob->header.nextOffset;

      } while (offset != 0);
    }

  fin_service_end:
    ::WSALookupServiceEnd(hLookup);

  fin_cleanup:
    ::WSACleanup();

  fin:
    return 0;
  }

Go to TopGo to Top

新しい iPhone

2013-09-23 21:31:25

iPhone 5s/c が発売されました。世の中的には、そのビッグウェーブに乗ったり乗らなかったりだと思いますが、今日、アップルストアに行って、新しい iPhone に交換してきました。といっても、5s/c ではなく、去年買った iPhone 5 です。

先週あたりから、スリープボタンが効いたり効かなかったりで、ロックしたつもりがされてない、とか、微妙な動きをするようになってました。さすがに使いづらいので、さくさくジーニアスバーを予約して、無事、交換となりました ( 厳密には、保証期間が過ぎてたみたいなんですが、その辺はなんとかゴニョゴニョ... )。

iPhone 4 -> 4s -> 5 と一年おきに変えてきましたが、今のところ、iPhone 5s/c には食指が動きません。まぁ、携帯の回線を整理する意味で、au から docomo に戻そうかとは思ってるんですが...。あんまり、回線的にいい評判も聞かないし、どうしようか悩み中です。

あ。ウィルコムの ストラップフォン は、最近ほとんど使ってなかったので、さくっと解約してきました。そっちの電話番号は、ごくごくプライベートにしか使ってなかったので、電話番号を知ってる人もほとんどいないと思いますが、もし、『電話がつながらないぞー』という方がいらっしゃったら、お手数ですが、docomo の電話にご連絡いただけると助かります。

どこかで見たパターン...。

Go to TopGo to Top

ドメインの有効期限切れ

2013-09-18 23:28:51

過去に何を書いたか調べるのが面倒なときは、ついついググっちゃうわけなんですけど、先日、ググった結果が http://www.nic.st/ に飛ばされる状態になってました。んん? って、よく見てみると、2013-09-07 でこのドメインが期限切れになってます。ちゃんとブログを更新していないバチが当たった感じでしょうか。まことに申し訳ありません。

非常にお恥ずかしい状況でしたが、現在は何とか復旧できていると思います。期限切れになっていた間、おそらく、メールもエラーになっていたんだろうと思います。もし、『メールがエラーで返ってきたぞー』という方がいらっしゃったら、お手数ですが、再度、ご連絡いただけると助かります。

よろしくお願いします。


Go to TopGo to Top