{"id":5523,"date":"2014-03-11T12:03:12","date_gmt":"2014-03-11T03:03:12","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/?p=5523"},"modified":"2014-03-11T12:12:14","modified_gmt":"2014-03-11T03:12:14","slug":"%e8%89%a6%e3%81%93%e3%82%8c%e3%81%ae%e3%83%90%e3%83%88%e3%83%abjson%e3%82%92network-monitor%e3%81%a7%e8%a7%a3%e6%9e%90%ef%bc%88%e7%ab%af%e6%ad%a9%e7%b7%a8%ef%bc%89","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/5523","title":{"rendered":"\u8266\u3053\u308c\u306e\u30d0\u30c8\u30ebJSON\u3092Network Monitor\u3067\u89e3\u6790\uff08\u7aef\u6b69\u7de8\uff09"},"content":{"rendered":"<p>\n\u8266\u3053\u308c\u306e\u30d0\u30c8\u30ebJSON\u3092\u518d\u89e3\u6790\uff08\u7965\u9cf3\u6539\u5c0f\u7834\u7de8\uff09 | Moonmile Solutions Blog<br \/>\n<a href=\"http:\/\/www.moonmile.net\/blog\/archives\/5517\">http:\/\/www.moonmile.net\/blog\/archives\/5517<\/a>\n<\/p>\n<p>\n\u3067\u89e3\u6790\u3092\u3057\u305f\u5f8c\u3067\u3001hp \u3092\u6e1b\u7b97\u3059\u308c\u3070 ok \u3068\u3044\u3046\u306e\u306f\u5206\u304b\u3063\u305f\u306e\u3067\u3001\u3055\u3066\u4ed6\u306e\u8266\u3053\u308c\u30d6\u30e9\u30a6\u30b6\u3092\u898b\u3066\u307f\u308b\u3068&#8230;\u306a\u3093\u304b\u3001\u3082\u3046\u3053\u308c\u3067\u3044\u3044\u3084\u3063\u3066\u306a\u611f\u3058\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002\u3082\u3068\u3082\u3068\u8adc\u5831\u54e1\u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30af\u30bb\u30b5\u30ea\u7684\u306b\u4f5c\u308a\u305f\u304b\u3063\u305f\u308f\u3051\u3067\u3001\u6226\u7565\u30b2\u30fc\u30e0\u7684\u306a\u5185\u5bb9\u3092\u8abf\u67fb\u3057\u3066\u3068\u3044\u3046\u306e\u306f\u3061\u3087\u3063\u3068\u82e6\u624b\u3067\u3002\u305f\u3060\u3057\u3001\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30af\u30bb\u30b5\u30ea\u3068\u3044\u3048\u3070\u3001\n<\/p>\n<p>\n&lt;b&gt;MMDDM&lt;\/b&gt;MMD\u30e2\u30c7\u30eb\u7528\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30de\u30b9\u30b3\u30c3\u30c8\u30c4\u30fc\u30eb?-?[?BowlRoll?]<br \/>\n<a href=\"http:\/\/bowlroll.net\/up\/dl30246\">http:\/\/bowlroll.net\/up\/dl30246<\/a><\/p>\n<p>\u304c\u52d5\u3044\u3066\u3044\u308b\u308f\u3051\u3067\u3001\u3053\u308c\u3067\u3082\u3044\u3044\u304b\uff08\u5049\u305d\u3046\uff09\u3063\u3066\u306a\u611f\u3058\u306b\u306a\u3063\u3066\u307e\u3059\u3002\u305d\u3046\u306a\u308b\u3068\u3001\n<\/p>\n<ul>\n<li>\u8266\u3053\u308c\u30d6\u30e9\u30a6\u30b6\u3067\u3001GUI \u3092\u307e\u304b\u306a\u3046<\/li>\n<li>MMDDM \u3067 \u699b\u540d\/\u30cf\u30eb\u30ca \u306e\u30de\u30b9\u30b3\u30c3\u30c8\u304c\u52d5\u304f<\/li>\n<\/ul>\n<p>\n\u3068\u3044\u30462\u70b9\u3092\u6e80\u305f\u305b\u308c\u3070\u3044\u3044\u308f\u3051\u3067\uff08\u30ef\u30bf\u30af\u30b7\u7684\u306b\u306f\uff09\u3001\u3068\u306a\u308b\u3068\u3053\u3053\u306e\u7e4b\u304e\u306e\u90e8\u5206\u3092\u4f5c\u308c\u3070\u3044\u3044\u308f\u3051\u3067\u3059\u306d\u3002\u696d\u52d9\u7684\u306b\u3082\u3088\u304f\u3042\u308b\u30d1\u30bf\u30fc\u30f3\u3067\u3059\u3002\n<\/p>\n<p>\n\u8266\u3053\u308c\u30d6\u30e9\u30a6\u30b6\u306f\u3001\n<\/p>\n<p>\n\u56de\u8ee2\u6bcd\u6e2f\u30da\u30fc\u30b8<br \/>\n<a href=\"http:\/\/spinpreach.webcrow.jp\/SpinHomePort.html\">http:\/\/spinpreach.webcrow.jp\/SpinHomePort.html<\/a><br \/>\n\u8266\u3053\u308c \u53f8\u4ee4\u90e8\u5ba4<br \/>\n<a href=\"http:\/\/nozomi.arege.jp\/KanHQ\/\">http:\/\/nozomi.arege.jp\/KanHQ\/<\/a><br \/>\n\u63d0\u7763\u696d\u3082\u5fd9\u3057\u3044\uff01 | grabacr.net<br \/>\n<a href=\"http:\/\/grabacr.net\/kancolleviewer\">http:\/\/grabacr.net\/kancolleviewer<\/a>\n<\/p>\n<p>\n\u3092\u4f7f\u3044\u307e\u3059\u3002\u5f8c\u3001\u30d6\u30e9\u30a6\u30b6\u4e0a\uff08IE,Firefox\u306a\u3069\uff09\u3067\u8266\u3053\u308c\u3092\u52d5\u304b\u3057\u3066\u3044\u308b\u5834\u5408\u3082\u542b\u3081\u307e\u3059\u3002\u5148\u306e\u8266\u3053\u308c\u30d6\u30e9\u30a6\u30b6\u304c fiddler \u3092\u4f7f\u3063\u3066\u3044\u308b\u306e\u3067\u3001fiddler \u304b\u3089 fiddler \u3092\u30d5\u30c3\u30af\u3059\u308c\u3070\u3044\u3044\u306e\u3067\u3059\u304c\u3001\u3061\u3087\u3063\u3068\u3053\u308c\u304c\u3046\u307e\u304f\u3044\u304b\u305a\u3002\u66f4\u306b\u901a\u5e38\u306e\u30d6\u30e9\u30a6\u30b6\u306e\u5834\u5408\u306f fiddler \u3060\u3051\u3067\u306f\u3046\u307e\u304f\u3044\u304b\u306a\u3044\u306e\u3067\uff08\u30bf\u30d6\u30d6\u30e9\u30a6\u30b6\u306a\u306e\u3067\u30d4\u30f3\u30dd\u30a4\u30f3\u30c8\u3067 proxy \u3092\u5909\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u304b\u4e0d\u660e\uff09\u3001network monitor \u306b\u7acb\u3061\u8fd4\u3063\u3066\u8abf\u3079\u3066\u3044\u307e\u3059\u3002\n<\/p>\n<p>\nDownload Microsoft Network Monitor 3.4 from Official Microsoft Download Center<br \/>\n<a href=\"http:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=4865\">http:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=4865<\/a>\n<\/p>\n<p>\n\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30d5\u30c3\u30af\u30c4\u30fc\u30eb\u304c wincap \u2192 network monitor \u2192 fiddler \u3068\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u3072\u3068\u3064\u624b\u524d\u306e\u6280\u8853\u306a\u306e\u3067\u3059\u304c\u3001fiddler \u3068\u9055\u3063\u3066\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5168\u4f53\u3092\u30d5\u30c3\u30af\u3057\u307e\u3059\uff08\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c9\u30e9\u30a4\u30d0\u30fc\u7cfb\u306a\u306e\u304b\u3001\u3061\u3087\u3063\u3068\u4e0d\u660e\uff09\u3002\u306a\u306e\u3067\u3001PC\u5168\u4f53\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u76e3\u8996\u3067\u304d\u307e\u3059\u306d\u3002\u5f53\u7136\u3001proxy \u5f62\u5f0f\u306e fiddler \u3082\u30d5\u30c3\u30af\u3067\u304d\u307e\u3059\u3002<br \/>\n\u9006\u306b\u3001fiddler \u306b\u3067\u304d\u3066\u3001network monitor \u306b\u3067\u304d\u306a\u3044\u306e\u304c\u3001\n<\/p>\n<ul>\n<li>\u901a\u4fe1\u30c7\u30fc\u30bf\u3092\u6539\u5909\u3059\u308b\u3002<\/li>\n<li>fiddler \u306f HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u306b\u7279\u5316\u3057\u3066\u3044\u3066\u3001C#\/VB.NET\u304b\u3089\u6271\u3044\u3084\u3059\u3044\u3002<\/li>\n<li>network monitor \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\uff08\u591a\u5206\uff09<\/li>\n<\/ul>\n<p>\n\u306a\u3068\u3053\u308d\u3067\u3059\u3002\u4e0b\u308a\u30c7\u30fc\u30bf\u306e swf \u3084 mp3 \u3092\u6539\u5909\u3057\u3066\u300c\u699b\u540d\u3092\u30cf\u30eb\u30ca\u306b\u3059\u308b\u300d\u3053\u3068\u306f network monitor \u3067\u306f\u3067\u304d\u307e\u305b\u3093\u304c\u3001\u307e\u3042\u3001\u591c\u6226\u524d\u306e\u72b6\u614b\u53d6\u5f97\u3068\u304b\u3001Azure mobile service \u3068\u9023\u643a\u3057\u3066 push \u901a\u4fe1\u3068\u304b\u306a\u3089\u3067\u304d\u305d\u3046\u3067\u3059\uff08\u5f53\u7136\u3001fiddler \u3067\u3082\u53ef\u80fd\u3067\u3059\u304c\uff09\u3002\u3042\u3068\u3001network monitor \u306e\u5834\u5408\u306f\u3001\u30c7\u30fc\u30bf\u3092\u30e2\u30cb\u30bf\u578b\u5f0f\uff08\u305f\u3076\u3093\u5185\u90e8\u7684\u306a\u30b3\u30d4\u30fc\uff09\u3067\u53d6\u3063\u3066\u304f\u308b\u306e\u3067\u3001PC\u306b\u5bfe\u3059\u308b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u8ca0\u8377\u304c\uff08\u305f\u3076\u3093\uff09\u4f4e\u3044\u3068\u601d\u308f\u308c\u307e\u3059\u3002\u307e\u3042\u3001\u3053\u308c\u3082\u8266\u3053\u308c\u306b\u5bfe\u3057\u3066\u3060\u3051\u3060\u3057\u3001\u8266\u3053\u308c\u30b5\u30fc\u30d0\u30fc\u81ea\u4f53\u306b\u306f fiddler \u3067\u3082 network monitor \u3067\u3082\u8ca0\u8377\u304c\u4f4e\u3044\u306e\u306f\u540c\u3058\u306a\u306e\u3067\uff08\u3080\u3057\u308d\u30d6\u30e9\u30a6\u30b6\u306e\u307b\u3046\u304c\u8ca0\u8377\u304c\u9ad8\u3044\uff09\u305d\u306e\u3042\u305f\u308a\u306f\u554f\u984c\u3042\u308a\u307e\u305b\u3093\u3002\n<\/p>\n<p>\n\u25a0network monitor \u3067\u8266\u3053\u308c\u901a\u4fe1\u3060\u3051\u62bd\u51fa\u3059\u308b\n<\/p>\n<p><a href='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2014\/03\/wpid-dworkblogimage20140311_01org.jpg'><img border='0' src='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2014\/03\/wpid-dworkblogimage20140311_01thum.jpg'\/><\/a><\/p>\n<p>\nDisplay Filter \u3067\u4ee5\u4e0b\u3092\u8a2d\u5b9a\u3059\u308c\u3070 OK \u3067\u3059\u3002SourceAddress \u306f\u3001\u8266\u3053\u308c\u30b5\u30fc\u30d0\u30fc\u306a\u306e\u3067\u93ae\u5b88\u5e9c\u304c\u9055\u3046\u3068\u5225IP\u306b\u306a\u308a\u307e\u3059\u3002URI\u3067\u7d5e\u3063\u305f\u307b\u3046\u304c\u3044\u3044\u3082\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n.ProtocolName == &quot;HTTP&quot; and\n.HTTP.Response and\n.Ipv4.SourceAddress == XXX.XXX.XXX.167\n<\/pre>\n<p>\n\u25a0\u30d8\u30eb\u30d7\u3092\u898b\u308b\n<\/p>\n<p>\n\u5b9f\u306f network monitor \u306b\u306f api \u304c\u3042\u308a\u307e\u3059\u3002\u30d8\u30eb\u30d7\u3082\u3042\u308a\u307e\u3059\u3002API \u306f wincap \u3060\u3051\u304b\u3068\u601d\u3044\u8fbc\u3093\u3067\u3044\u305f\u306e\u3067\u3001\u3053\u308c\u306f\u7d50\u69cb\u4f7f\u3048\u307e\u3059\u306d\u3002\n<\/p>\n<p>\nC:Program FilesMicrosoft Network Monitor 3HelpNetMon.chm\n<\/p>\n<p>\n\u306a\u3068\u3053\u308d\u306b HTML \u30d8\u30eb\u30d7\u304c\u3042\u308a\u307e\u3059\u3002C++\u3068C#\u306e api \u3082 API \u30d5\u30a9\u30eb\u30c0\u306b NmApi.h \u3084 NetmonAPI.cs \u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308a\u307e\u3059\u3002\u30d8\u30eb\u30d7\u306b\u306f api \u3092\u4f7f\u3063\u305f\u30b5\u30f3\u30d7\u30eb\u304c\u8f09\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u3053\u308c\u3092\u624b\u304c\u304b\u308a\u306b\u3057\u3066\u4f5c\u3063\u3066\u3044\u307e\u3059\u3002\n<\/p>\n<p>\n\u25a0api \u3092\u4f7f\u3063\u3066\u30d5\u30c3\u30af\u3059\u308b\n<\/p>\n<p>\n\u307e\u3060\u307e\u3060\u9014\u4e2d\u3067\u3059\u304c\u3001\u6652\u3057\u3066\u304a\u304d\u307e\u3059\u3002google \u3067\u691c\u7d22\u3057\u3066\u3082\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u306b\u30d5\u30c3\u30af\u3059\u308b\u65b9\u6cd5\u304c\u306a\u304b\u306a\u304b\u51fa\u3066\u3053\u306a\u3044\u306e\u3067\u3002<br \/>\n\u30cf\u30f3\u30c9\u30eb\u306e\u30af\u30ed\u30fc\u30ba\u3068\u304b\u4f8b\u5916\u51e6\u7406\u3068\u304b\u306f\u7701\u3044\u3066\u3044\u307e\u3059\u3002\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nprivate void Window_Loaded(object sender, RoutedEventArgs e)\n{\n    \/\/ netmon api \u306e\u521d\u671f\u5316\n    IntPtr phCaptureEngine = IntPtr.Zero;\n    NetmonAPI.NmOpenCaptureEngine(out phCaptureEngine);\n    \/\/ \u30d5\u30a3\u30eb\u30bf\u3092\u4f5c\u6210\n    MyLoadNPL();\n\n    \/\/ \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30a2\u30c0\u30d7\u30bf\u306e\u30c1\u30a7\u30c3\u30af\uff08\u8907\u6570\u5dee\u3057\u8fbc\u307f\u3001VMWare Net\u306a\u3069\uff09\n    uint ucnt = 0;\n    NetmonAPI.NmGetAdapterCount(phCaptureEngine, out ucnt);\n    NM_NIC_ADAPTER_INFO adapterInfo = new NM_NIC_ADAPTER_INFO();\n    adapterInfo.Size = (ushort)System.Runtime.InteropServices.Marshal.SizeOf(typeof(NM_NIC_ADAPTER_INFO));\n    \/\/ 4\u756a\u76ee\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u30d5\u30c3\u30af\n    uint ulIndex = 3;\n    uint errno = NetmonAPI.NmGetAdapter(phCaptureEngine, ulIndex, ref adapterInfo);\n    \/\/ \u30e2\u30cb\u30bf\u306e\u6e96\u5099\n    uint ret = 0;\n    IntPtr myTempCap = IntPtr.Zero;\n    ret = NetmonAPI.NmConfigAdapter(phCaptureEngine, ulIndex,\n        new CaptureCallbackDelegate(FrameIndicationCallback), \n        myTempCap, \n        NmCaptureCallbackExitMode.ReturnRemainFrames);\n    \/\/ \u30e2\u30cb\u30bf\u306e\u958b\u59cb\n    ret = NetmonAPI.NmStartCapture(phCaptureEngine, ulIndex, NmCaptureMode.Promiscuous);\n\n\n}\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u30b3\u30fc\u30eb\u30d0\u30c3\u30af\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;hCapEng&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;ulAdatIdx&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;pContext&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;hRawFrame&quot;&gt;&lt;\/param&gt;\npublic void FrameIndicationCallback(IntPtr hCapEng, UInt32 ulAdatIdx, IntPtr pContext, IntPtr hRawFrame)\n{\n\n    IntPtr parsedFrame, insertedRawFrame;\n    \/\/ \u30d5\u30ec\u30fc\u30e0\u306e\u30d1\u30fc\u30b9\u30c1\u30a7\u30c3\u30af\n    if( NetmonAPI.NmParseFrame(\n        _frameParserHandle,\n        hRawFrame,\n        0,\n        NmFrameParsingOption.None ,\n        out parsedFrame,\n        out insertedRawFrame)  != 0 )\n    {\n        \/\/ NetmonAPI.NmCloseHandle(hRawFrame);\n        return;\n    }\n\n    \/\/ \u30d5\u30a3\u30eb\u30bf\n    bool passed = false;\n    NetmonAPI.NmEvaluateFilter(parsedFrame, _httpFilterId, out passed);\n    if (passed == false)\n        return;\n\n    uint ret;\n    var name = new char&#x5B;256];\n    \/\/ \u30dd\u30a4\u30f3\u30bf\u3092\u76f4\u63a5\u6271\u3046\u306e\u3067 unsafe \u3092\u4f7f\u3046\n    unsafe\n    {\n        fixed (char* value = &amp;name&#x5B;0])\n        {\n            ret = NetmonAPI.NmGetFieldValueString(parsedFrame, _uriFeildId, 256, value);\n        }\n    }\n    var bytes = new byte&#x5B;4000];\n    unsafe\n    {\n        fixed (byte* buf = &amp;bytes&#x5B;0])\n        {\n            uint offset, size;\n            NetmonAPI.?NmGetFieldOffsetAndSize(parsedFrame, _uriFeildId, out offset, out size);\n            Debug.WriteLine(&quot;offset:{0} size:{1} &quot;, offset, size);\n            \/\/ NetmonAPI.NmGetRawFrame(hRawFrame, 4000, buf, out size);\n            \/\/ Debug.WriteLine(&quot;size2 {0}&quot;, size);\n        }\n    }\n}\n\nIntPtr _engineHandle, _frameParserHandle, _nplParserHandle, _configParserHandle;\nuint _httpFilterId, _uriFeildId;\n\nprivate void MyParserBuild(IntPtr pCallerContext, uint ulStatusCode, string lpDescription, NmCallbackMsgType ulType)\n{\n    \/*\n    \/\/ throw new NotImplementedException();\n    if (pCallerContext == IntPtr.Zero)\n        return;\n\n    GCHandle gch = GCHandle.FromIntPtr(pCallerContext);\n    NM_NIC_ADAPTER_INFO adapterInfo = (NM_NIC_ADAPTER_INFO)gch.Target;\n        * *\/\n}\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u30d5\u30a3\u30eb\u30bf\u306e\u4f5c\u6210\n\/\/\/ &lt;\/summary&gt;\nvoid MyLoadNPL()\n{\n    IntPtr myFrameParser = IntPtr.Zero;\n    ulong ret;\n    IntPtr myNplParser = IntPtr.Zero;\n    IntPtr myFrameParserConfig = IntPtr.Zero;\n\n\n    \/\/ Use NULL to load the default NPL parser set.\n    ret = NetmonAPI.NmLoadNplParser(null, NmNplParserLoadingOption.NmAppendRegisteredNplSets, MyParserBuild, IntPtr.Zero, out myNplParser);\n    ret = NetmonAPI.NmCreateFrameParserConfiguration(myNplParser, MyParserBuild, IntPtr.Zero, out myFrameParserConfig);\n    ret = NetmonAPI.NmConfigConversation(myFrameParserConfig, NmConversationConfigOption.None, true);\n    ret = NetmonAPI.NmConfigReassembly(myFrameParserConfig, NmReassemblyConfigOption.None, true);\n\n    uint myHTTPFilterID = 0;\n    uint myHTTPFieldID = 0;\n    \/\/ ret = NetmonAPI.NmAddFilter(myFrameParserConfig, &quot;http.request.command == &quot;GET&quot;&quot;, out myHTTPFilterID);\n    \/\/ ret = NetmonAPI.NmAddField( myFrameParserConfig, &quot;http.request.uri&quot;, out myHTTPFieldID);\n    \/\/ ret = NetmonAPI.NmAddFilter(myFrameParserConfig, &quot;Protocol.HTTP&quot;, out _httpFilterId);\n    \/\/ ret = NetmonAPI.NmAddFilter(myFrameParserConfig, &quot;tcp.Port == 80&quot;, out _httpFilterId);\n    ret = NetmonAPI.NmAddFilter(myFrameParserConfig, &quot;http.request.command == &quot;GET&quot;&quot;, out _httpFilterId);\n    ret = NetmonAPI.NmAddField(myFrameParserConfig, &quot;http.request.uri&quot;, out _uriFeildId);\n    ret = NetmonAPI.NmCreateFrameParser(myFrameParserConfig, out myFrameParser, NmFrameParserOptimizeOption.ParserOptimizeNone);\n    _frameParserHandle = myFrameParser;\n}\n<\/pre>\n<p>\n\u521d\u671f\u5316\u306f\u3001<br \/>\n1. NmOpenCaptureEngine \u3067 api \u521d\u671f\u5316<br \/>\n2. NmGetAdapterCount \u3068 NmGetAdapter \u3067\u3001\u30d5\u30c3\u30af\u5bfe\u8c61\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30a2\u30c0\u30d7\u30bf\u3092\u53d6\u5f97<br \/>\n3. NmConfigAdapter \u3067\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u306e\u767b\u9332<br \/>\n4. NmStartCapture \u3067\u30e2\u30cb\u30bf\u958b\u59cb\n<\/p>\n<p>\n\u30d5\u30a3\u30eb\u30bf\u4f5c\u6210\u306f\u3001<br \/>\n1. NmLoadNplParser \u3068 NmCreateFrameParserConfiguration \u3067\u521d\u671f\u5316<br \/>\n2. NmAddFilter \u3067\u30d5\u30a3\u30eb\u30bf\u4f5c\u6210<br \/>\n3. NmAddField \u3067\u30d5\u30a3\u30fc\u30eb\u30c9\u4f5c\u6210\uff08\u5024\u3092\u53d6\u5f97\u3059\u308b\u3068\u3053\u308d\uff09<br \/>\n4. NmCreateFrameParser \u3067\u30d1\u30fc\u30b5\u306e\u4f5c\u6210<br \/>\n_httpFilterId \u3084\u3000_uriFeildId \u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u306b\u4fdd\u5b58\u3057\u3066\u304a\u3044\u3066\u4f7f\u3044\u307e\u308f\u3057\u3092\u3057\u307e\u3059\u3002\u305f\u3076\u3093\u3001\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u306e\u6642\u306b\u4f5c\u3063\u3066\u3082\u3088\u3044\u306e\u3067\u3059\u304c\u3001\u3042\u3089\u304b\u3058\u3081\u4f5c\u3063\u305f\u307b\u3046\u304c\u30cf\u30f3\u30c9\u30eb\u3068\u3057\u3066\u30d9\u30bf\u30fc\u304b\u3068\u3002\n<\/p>\n<p>\n\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u306b\u306f\u3001\u5168\u3066\u306e\u901a\u4fe1\u304c\u5165\u3063\u3066\u6765\u308b\u306e\u3067\u30d5\u30a3\u30eb\u30bf\u3067\u9078\u5225\u3057\u307e\u3059\uff08\u3053\u3053\u306b\u6ce8\u610f\uff09\u3002<br \/>\n1. \u6700\u521d\u306b NmParseFrame \u3067\u30d1\u30fc\u30b9\u3057\u307e\u3059\u3002<br \/>\n2. NmEvaluateFilter \u3067\u3001\u5148\u306b\u4f5c\u6210\u3057\u305f\u30d5\u30a3\u30eb\u30bf\u3092\u9069\u7528<br \/>\n3. NmGetFieldValueString \u3084 NmGetFieldOffsetAndSize \u306a\u3069\u3092\u4f7f\u3063\u3066\u5404\u7a2e\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5024\u3092\u53d6\u5f97\n<\/p>\n<p>\nnetwork monitor \u3092\u8abf\u3079\u3066\u3044\u304f\u3068 NPL \u306b\u3076\u3061\u5f53\u305f\u308b\u306e\u3067\u3059\u304c\u3001\u6240\u8b02\u69cb\u9020\u4f53\u5b9a\u7fa9\u3067\u3059\u3002\n<\/p>\n<p>\nNetwork Monitor Open Source Parsers &#8211; Home<br \/>\n<a href=\"http:\/\/nmparsers.codeplex.com\/\">http:\/\/nmparsers.codeplex.com\/<\/a>\n<\/p>\n<p>\nHTTP\u30d7\u30ed\u30c8\u30b3\u30eb\u3068\u304bICMP\u30d7\u30ed\u30c8\u30b3\u30eb\u3068\u304b\u3001\u5404\u7a2e\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u7591\u4f3c\u7684\u306a\u69cb\u9020\u5bfe\u3067\u5b9a\u7fa9\u3057\u307e\u3059\uff08\u4e2d\u8eab\u306f\u30b3\u30fc\u30c9\u3067\u3059\uff09\u3002\u3053\u308c\u306f\u3001\u65e2\u306b network monitor \u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u542b\u307e\u308c\u3066\u3044\u308b\u306e\u3067 NmLoadNplParser \u306e NmNplParserLoadingOption.NmAppendRegisteredNplSets \u3067\u8aad\u307f\u8fbc\u307e\u305b\u308c\u3070 OK \u3067\u3059\u3002\u72ec\u81ea\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u4f5c\u308b\u3068\u304d\u306b\u306f NPL \u3092\u4f5c\u308c\u3070\u3044\u3044\u306e\u3067\u3057\u3087\u3046\u3002\u3053\u3053\u3067\u306f HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u3057\u304b\u4f7f\u308f\u306a\u3044\u306e\u3067\u3053\u308c\u3067\u5341\u5206\u3067\u3059\u3002\n<\/p>\n<p>\nnetmon api \u306e C# \u306f\u8584\u3044\u30e9\u30c3\u30d1\u30fc\u306a\u306e\u3067\u3001NmGetFieldValueString \u3092\u4f7f\u3063\u305f\u53d7\u3051\u6e21\u3057\u306f\u30dd\u30a4\u30f3\u30bf\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u624b\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u305f\u3081\u306b\u306f unsafe \u3068 fixed \u304c\u5fc5\u8981\u306a\u306e\u3067\u3059\u304c&#8230;\u3053\u306e\u3042\u305f\u308a\u306f C++\/CLI \u3067\u4f5c\u308a\u76f4\u3057\u305f\u307b\u3046\u304c\u3088\u3055\u305d\u3046\u3002\u3042\u308b\u3044\u306f\u3001string \u306b\u5909\u63db\u3059\u308b\u95a2\u6570\u3092\u4f5c\u308b\u3068\u304b\u3002<br \/>\n\u307e\u305f\u306f HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u3057\u304b\u4f7f\u308f\u306a\u3044\u306e\u3067\u3001fidder \u4e92\u63db\u306b\u3057\u3066\u3057\u307e\u3046\u306e\u304c\u3088\u3055\u305d\u3046\u3067\u3059\u306d\u3002\u307e\u3042\u3001network monitor \u81ea\u4f53\u304c 2010\/06 \u3067\u66f4\u65b0\u304c\u7d42\u308f\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u4eca\u66f4\u611f\u304c\u3042\u308a\u307e\u3059\u304c\u3002\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u89e3\u6790\u7684\u306b\u306f\u4fbf\u5229\u304b\u306a\u3002\u3061\u306a\u307f\u306b\u3001System requirements \u306b\u306f Winodws 8 \u307e\u3067\u3057\u304b\u66f8\u3044\u3066\u3042\u308a\u307e\u305b\u3093\u304c\u3001Windows 8.1 x64 \u3067\u52d5\u4f5c\u3057\u3066\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8266\u3053\u308c\u306e\u30d0\u30c8\u30ebJSON\u3092\u518d\u89e3\u6790\uff08\u7965\u9cf3\u6539\u5c0f\u7834\u7de8\uff09 | Moonmile Solutions Blog http:\/\/www.moonmile.net\/blog\/archives\/5517 \u3067\u89e3\u6790\u3092\u3057\u305f\u5f8c\u3067\u3001hp \u3092\u6e1b\u7b97\u3059\u308c &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/5523\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[57],"tags":[],"class_list":["post-5523","post","type-post","status-publish","format-standard","hentry","category-57"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/5523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=5523"}],"version-history":[{"count":1,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/5523\/revisions"}],"predecessor-version":[{"id":5524,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/5523\/revisions\/5524"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=5523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=5523"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=5523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}