From cde02f3664efbe6eb81f275df5486f980fa42140 Mon Sep 17 00:00:00 2001 From: Allen Zhou Date: Tue, 12 Jul 2016 10:22:09 +0800 Subject: [PATCH 1/2] Add AllIp --- Wox.Plugin.IPAddress/IPAddress.cs | 28 ++++++++++-------- Wox.Plugin.IPAddress/Ref/Wox.Plugin.dll | Bin 0 -> 19968 bytes .../Wox.Plugin.IPAddress.csproj | 7 +++-- 3 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 Wox.Plugin.IPAddress/Ref/Wox.Plugin.dll diff --git a/Wox.Plugin.IPAddress/IPAddress.cs b/Wox.Plugin.IPAddress/IPAddress.cs index 355d7af..6ac7897 100644 --- a/Wox.Plugin.IPAddress/IPAddress.cs +++ b/Wox.Plugin.IPAddress/IPAddress.cs @@ -1,10 +1,7 @@ using System; using System.Windows.Forms; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Net; -using System.Net.NetworkInformation; namespace Wox.Plugin.IPAddress { @@ -13,25 +10,30 @@ public class Program : IPlugin public void Init(PluginInitContext context) { } public List Query(Query query) { - List results = new List(); + var results = new List(); + + var hostname = Dns.GetHostName(); - String hostname = Dns.GetHostName(); - // Get the Local IP Address - String IP = Dns.GetHostByName(hostname).AddressList[0].ToString(); // Get the External IP Address - String externalip = new WebClient().DownloadString("http://ipecho.net/plain"); + var externalip = new WebClient().DownloadString("http://ipecho.net/plain"); + + const string icon = "ipaddress.png"; + + // Get the Local IP Address + foreach (var ip in Dns.GetHostEntry(hostname).AddressList) + { - String icon = "ipaddress.png"; + results.Add(Result(ip.ToString(), ip.AddressFamily.ToString(), icon, Action(ip.ToString()))); + } - results.Add(Result(IP, "Local IP Address ", icon, Action(IP))); results.Add(Result(externalip, "External IP Address ", icon, Action(externalip))); return results; } // relative path to your plugin directory - private static Result Result(String title, String subtitle, String icon, Func action) + private static Result Result(string title, string subtitle, string icon, Func action) { return new Result() { @@ -43,7 +45,7 @@ private static Result Result(String title, String subtitle, String icon, Func Action(String text) + private static Func Action(string text) { return e => { @@ -54,7 +56,7 @@ private static Func Action(String text) }; } - public static void CopyToClipboard(String text) + public static void CopyToClipboard(string text) { Clipboard.SetText(text); } diff --git a/Wox.Plugin.IPAddress/Ref/Wox.Plugin.dll b/Wox.Plugin.IPAddress/Ref/Wox.Plugin.dll new file mode 100644 index 0000000000000000000000000000000000000000..57403a15956a264f5526dbc3f97a88a3dfed6c40 GIT binary patch literal 19968 zcmeHv3wRvWmFB6ceo3-gQp@IHY}3XM8ru@KG1wRZk|jUdmTh6lk6?q<>Ml!dx4K1j zw=MA+Ic5z6!oq}2NJ5Aih#@;+NJ1tM1}27Ny^s&GB+O=EhDpRi1~!>2OolH5%o6rL z=ichBZpmzRcE4};+i%P0@AIE??(5uJx9+{w&E_lbB#VfA`1|-{q9^dlSG(XR!#K?0 zv!4vpcWPdo`-IW`;@rNWbUr%b~u?;Aaib=5h7X#O+ab0Ha??DmfEpws(Q1Q>o3;{AoP4$)c>!D z8s)$8r>4qJb&O~l#BZjEX1TgQUz6wQKJ4n zzBo&h{6ve;*40FYX#eM7rh}9ti)g0Ppg(8JXY*21x|4G>bMUE+0Rl=wU29ufv>L># zK257JNImLBr=y%c{z>tTCO7tJ9)I)#b9PGA(ONr?WaO z+FYHMRh4O3V>(wWE)$>}nqW& z7gm+)!pw9q4OiZGGbg8GRXH6q(>Yw7?ySk_SXEBP4CAOOT?|v0)EAFfHIIm(<^ViE zluiVto8#(4P`Yzmoe0pKW1befku!$O^G_>2G5-BLfovU-Rcv4Ps)T&m0|td2TyIfDig{zN-^Kbg_c+FU_;(x;`SPbeR5C z>_kwyg{*tljQw#b2xnO_jDy;iX1*al!)m@oZV*Sz&GM> z5tI(Ml5f#Zksk}X9O;9zHIX_*D(VosjT?#dyneUIhEa|IfcP(Q+am(%aa27I zOg zyE+k+4xv+NMeyXirg!5SL$CJm45ouCT9>w7u=Iju7lR<$7-Te#FwDb^^d3H^VbYt| zTX53Z!905q3Vs5st9jdd=?N6b!+PHO?eQ*rJ_r7G5PVH0H^9E03pZKq&a=O3)P$h? z(71q*FR~%Tht9?y_w~QU-x&S^_~S89gTF`dhcO^~7Tlv$i@yu;H-tY<&%Uf@#+)@b z(|q7#z*_PdXBoBB0SwSp#whSUgRPGme*yh;ll8qO>u)ky|82qV1H&}SidkV=DfpuG z*H(ZW-16mP;Q;;T zFsEJJz@E1>GQQu;<(@H}@uKM)r~eUMh5I8wnd!Gp571WxpA>vq@b3kKGuV30jEiOj zXuHUc;5~wmivH;toad`Eev8K`QIA`k?u@kt9;CSG>7g-xf{W_59bQ&t6&dkc8=Iy(`=rw4>X%E z>{7qVWucUQ6WDpkGbZJI4J;0}L_B{io&yTx@Vy63G5A~4pw9+>2Rt*x z*dB^m20a_%R4)s@CHRrxj2hOr3T_az1#hfrL#lg3{+{4p3w}^@IrL}Na;oLE>mYXv z?yrqQ{%SqzzbE*U`tMph#@~j#WBhl5^XSv^sX-RDDhpoa|FrP&vS z^=tN^up!0h$CzIXdP>;e)x2h;Fm~V5>?1IXmdqtwH_-}nKSuHfVMoun$5@HJ=F1{x z*Ok~wqs2Uov7~G#jpOFc`aHm*lg7`?yD*lNO{L?xmviBCU%*`Bvg77gsG-C-T|_gL zPKJq2_YleLE$q1YEy8L8ms=iIPr_6>teb>!dEcjKi5)lpJz?E}OQm}m_f(H+ZRi~< zio0x=W*=Dl!BU!8z6r!IquF%dFTq9?lPE2wacz6YdY=~4Et-8`eFS#5#}iLjxlZ~M zzK~I7kNKJnemd}V(*G;pgn{R#Tqpg0e^gdtOi%jfcv*e7e~F2wsaz-P_kt}I+3hhr zz;LO^FE{zQqu6nCwaHHwHxhTz#dNQyo~y;ihsgwhDG-;C{25?poN^m2$bgg56ue{xq=P?f_+2Sk!iZBGaN)+Rck zZ9fXug1sQ@B>ksg6o*x>X*Lm@VRcjEIb6s|`gL%owV7hVc!P%sUeataY}*M-4_rq>E9?5K9W+g|uDV@dZJJ$ybUUd_*x`_kbUSHO z+s0tqMdO-%7PejV9nJ2C?NjuWup^-#!uBbej>S8d_X=!R(k#t>1>2R>quGC}OIo{W zmu3yq4uIXF**Vjqw1@80taaLcuor}>QE(OgmA0*h=T-EYW*es!tgGlv&2~;31)IK5 z)g=Yn)ig`9B5YSvw`NDD&9wGXpJxAN+6`bgDJG+!pKjN-R5(igbhof0p=-kX!H#L$ zjj$!?VQsq=wgi1g+wKnkz#5>ZG`lbS9N2T3ag>tul4cyGB)z8D!^ks5Z)^6Eu=(ez z7Bx4pZK-DSg|!JgOuY>sTPeCln2MQAcWO@?o;KYh>`184upjI}Z9CGCwD!?AwC$dT z17J@m8$E(_gLFbMiOV28r_-I@#I~0-o7=P>>^036!!|^3YPJftA$nIc?&&nWuNn7r znwG>=`?fXxN8f&0q1jbUzW{63Y^Z6bb$~W#<}}>^)+g*p==!GjDMNcSyS?cnup#Zq zqji`@G~>}aOb-h?Nj#%u>21w;M#)j*d0ZD2!5qyOb~N-r(>uN#Ez#_;ruV^CDTcV* zZ;sHO5?e`mN@>rRo6hy;DWlmNO^d-sHTy?IsX*hJQDi^Z?V4R5N&Aa*w`O-nvS7y) zlYTfz4{O`G&3)EE`leZH(SmOiI5N5i;l%!FLUo-!&Q=4O(Zi{CS{BUlIAi5}NcPWJ|1Avx)v+=E-SI zT5EA`D*tMYPs;M2vaBr9nsi8VxDjYjwPvau+?J~LGT!ZD{GkWEKHk>d=jRetZOgJH z_4HNLQ|0zI@K-sT^dV%6uu&6DW1~qkJaUW30|C|#0WG>lG~W|^QP5i}ul!b!^Ym)| z&&qon{^j-Yw&e#+9PQS6j>eB5|DkQPs2=O@7uXl8F8%qUNE*n{vG5F==WpyiuYC6WwK9=;H{#+t0b>PJ`+J4@5u^=Y3;4Z5}Mj+HIO@vZNN?9zsa~B^54)M$Y+!B8OXiHJ;4qsF(G(Z z@Fv=XIvf-Egy8FfhQW24D~J;x$cF`w7`y2@<9?AJfc#728IfNXG)ze)*ddq@JS=#> z;4^}+3%+4~nI5qWi&I4f=L()@?WQ}dc9A;-wTt)jnQ zG!H;y1x|?kjNlJMGa+)jZ#SK3bojXRgy3PpuS37VcS7XnA>ZPg5czdM!!K<~-{ z9u~Y`@EO79{ky5tKLH#zUl)xLkd_7xpv1W%w~O2%azb!iG{*!fxSJj}qrhj(V?j=P zLXbj|k6^oCzaXE7Ba(vcg8hQW1WyP~2vV(h3bqUO3yupO6Fea}AxL%NFW4^FFE}oE zOz?!@gdk00|9-)7!DE6a1SbTkUVH?{1&;}y5S$RCF#EI%_6v>+9uqtvI3Y+4QbR#% z6j`ucuwQVzaX0yVCq$kQq$cqc92Yz$ctUVOkRswEI3Y;QqG{euroUh0alvDPCj=)1 zX*zqh3-$|+3my|ZAvhsOGbB&Jc51YKZ2hzKD<7U|m|ab3#?uW4#s(&8D*D@jk>D)o z4V;YlFi!?>ei6i3X$_r@+4&5bjq}5EabCI%cQcNX>2=xTzb*KV-~!*TpbH2hx|`5y$0dQRIU zcy|3!SX)KDNN`R4SE1P}n5lmN^2rAF{||ycYv{zPL8X07G;a%jC>U&H&t}0njhu6R zgf%~EVpOFxN0wq;Ff+nAMcL0>^4FTV{@)V(OTp)Xjfk#^ zIP!63 z(fbDWzOx~3M>z)V0Gimj&V{@SXks@y5Av0QdvN}0(r&@4&?bYf2AZ@N&vAqLfhP8B ziy;pHO-kZC*uWmE1+tB?WY9jKiM`D-$U{Jr_Tw#tNeA$L!N5M_Lde6k5^@%3QVy#E zyfp-xI0wE2avo@6ZGS1`qTnH%ESq?$GL9ln2Ht0MK)x0cGU+;63%s7z18+c_Ogwcr z!RIj0q)#JG1|0#KI9c8b`DVde5hs&w5&R6|WYBFulWs?xZ~_c8=?=sRC#XP^?nImn zx(jI1A0t8reNONm?5<7v0??p)5hs(rEcg|~$)NjyCeE;vkdFaPoM79K9{^%~i#Qqd zHK0kyv9B}eA)rYQBU%PlEeFUq&Z{wt9>+LVS0g@fE0it+{mfUTZvG@)E&8k4ua?xA zT1YGknlW;!{kXUJszb{b(;HR`{y=x;Mq7I_#ldv8HI>PDC=KV6IVY1Ipx&{3!5*d_ z$Ijc?LZXn)Wjk|@U7=WqZ@Jlra?SzTVjn8xviaP;LhHtSE~`_wN{Y74xl}P@Uq&67 zOzx1K>P}<_i-|#-whrvKlLZ>I3wwLU3PVW7VrTDA!Wj{9?WmnB77_y)o75XO>dS2( z8L=J8jqF`}O)-&47se=_*BMjB%~@xsv+`uKCXu&M9XmtuExAH^-&l{6Lw<#^&LO0= zQ{{>ekL0pwxN@%cs^V)8!gE6+o64YSow?zWG=%kb)^-vFJJnIZ+roij0gaHDwr(qC z3+Z7S(NUhgwsSC@wDZ)OEaV*OvNQG|5^_!hX?*W5o-No8zT9@8T)(~{$4;d14pNFs zIQH7nq_lt%snp)8>e0bOrfAbPdpLK{CPzLd`BbHmCUrP?#~IHa%pE{yWve`BM2Bt* z1_5;@GHCN=dw9ThSW#{?#@Z%(tSfgYTM?$s#Y`ccOymot=H}FJ7`8DKQn<_3*chL> z^ms>pESubB=aGs;<^l&2$pe&hg|*p~_QseMzkP@sioc?0J7X1vtBm3p;9Y1$g(=>Z zC?xdA)cv(HolWHq<*Ca_43^`PLQ3t2GS=e_Zz6++4&)L}sv^e&_L$8Bgbp4^V(3vG zcazQcoHr~I>NctAWe4`|U4xdPch{xuOp4l&L#f+M3HlgQ>Xe2*%9U%G&)W(q@>oliRH5w0=CRSma~q&T76Z%UJQRr(IA z(oRWrl8W(y`8I`lq@tK|50@pKA;neYaigXSlvKR{WpN;rPImOfsi&A9a(zc+(#IUY zH%Ok;tfxZd*eawRT_1l%S9J`gSnAB=@^;6_2v@C;a9G-qPKl;>D0hfCe{RkXQb8h_ zFAk`Xrcte)L}7@wj@a2=yHLQ`?n);zxj{_q38%p01*$a(2Rt|8q0)VsjBerx=i%ue z?hlMmR-uB*DKA|z#r^2cd{ddG(#3T}G4CBjGcmJc&MnxkHj%|sga^5k%eVvEz3;R- zPpV2iiL^s)N}hE8wr#cx35=!0B+DQ_7*&VyjjKi0x=G}&Es?&QeoD%tF;AFKIWij( z`JqmpcytCOf5my&aDBP2+d7MmgQ-ecT*pZjYs0Xbq~v-{nOrJ4wT0905as6a=hR*@ zh$RkgjcD(P@UFCjNh61epe^1tsYY%5AeyZ0DB=O*OxEwPojeBAWP`h4nQZaQ3zLmI z?SXu{FhvEr(s^Ffq$Vd(D;0Yk)(?EUe4@iC8Yk20CVLFavMCDa@S5|J^N%NUQy0vm zqz{Xh$w@j64$1^FwN*@=IjndlrR2`X*QC^#<+V`4N%Pu~2LtqMmZb%A5oEMT=cxgs zMAquA6SXU|-t9Rtln7fqJtsylXS?n^vAMFO(|xBBxr8lMeJ2jpx+=d?^E`f~ma2QO zJi=xE)GLzsR>{8Fg|n~dVezWeO!CQ3cFIfe^;i(ID|6~~#Z1P_-Jziz^*E6nyhB5k z;u$OAQ63&*_fU)g35B{_$?errCwe=~?I8EYB2PReY#uI|RtK&!L=_Ax8+A{Rx80>S z^KK_Tn8nVhyyC5Bwx>z#t5%FlS*R!+M6ECQkzP^0h?SAW$Q`s4iK47E}KV+ z+Yag55@CyKhv>D)T4{wSl_aAr?c@vEC!XJevA5M(J3NAY-`Z?(7)_Jiq1sq=r?b~k z?}79P#mh!4JNt4Sj*}Rpjk&biWA@rukfi!@*fMyES6Yt(zvePrN2Kv!aRK=9T+ekCRe4dA$;)y=i?Tw8^4w@|ft=%e~1KmHQ<9x?(oj zznt27apo|^7~ATku>(BCouHR2yxo|TZ<{uDO|`1h>#!--3o-=N!j%W3NUU?)rG~4! zrj6%$YT1^{@h+g;ot{nT)YwA$;> zQIKNQJ&uW$$6|@7cB&pCRoklil(u!=0!rysN^L@4j@U`eWmth=Wk1F0M*>>uBlW3D zN7cNov*2X-G%7#U!l`#Cy{~XeYe(kPHZ0jsl}=(>E>*?U!=)*nf>k@b3ic=$E_M%P zYq@x_dZ?$p*jAOBhhsFiHRN%}-rPOXEA7d#bHT9^0=8ysT`o1IkEY}yv(3&VMn%e( zA4d9MO4ee9^gx=A*UHu|d!RTt$n$Mkr`IFc%i$TA$AJz`NyH5^6(61Daafbbp-^TF z17u%%u!u(y*4UFW*k#iM>?OLs;%znot(<$MoNcwZVhH2`^lFa5CP9cNJUlMuO@)ahART zXY}~C9?^`oc+;>JXZ73R(SaY&c7u^WPF?sh!WNv6596GU>N{}SU%)$q9Nq&^!w%>i zybDN!XYuN%8-94~!Uxk3`=8zg%;QYmfzJq1YR`t9&<{w;0{b;}!Gi5PbQ$mzei*S9 zZxL*yO5!HR9YI$*mwY$1g3;>OkIZeKx^1hF=G8 zt5EjrQ`_=r(>mmv!M`|i$RT#RMh#WGDUOoUD5DQ3(L1vP??(plHlv909F$nH%qZ(R zk!KMp@oN+-$_M&%>BJxX?e#-PHhuT!$LDoFf5-h4di>fwJI-7&acgMV_gC$Bv&zS7Qz z7LpN3MJ|k7Tp#trQ$*;4QOgX4BAGhYvY>J>BQ0itD|)FfN|8$?w@WR2U&R*#g}$Hl z{i5$@U4L!Vm=WpVGE&f*k^Y21d*b_|iRg$N8AOK?d60xG#iBSo;*Ii>Xkp04PxK2> z{CwYbPaa#N@^gMHaB(0VJ(SL5N4!!0fPzQt;k%5n4*K!|X6SYz2)FzGrC8h@_1<$dWN+)f!>kl*VjVgE!jY zusDY~N}MKqSM1CnJL=!-FR? zev3ilpXRq%1)E2G^(riiw;0*MXiAPM@jhco6fX*)oXWX%s-ku9|Hu6|ek*Eng-AeN>! zUegk-G-$ad(Sah4CYD5p3WbsU>hsSZOc#cV1Fgy2@c9UNOD2JxVt_z*uURSdmby?-7`~Of;TI@reu1sb#&MVZ{32a-wWx&>t7f`fax&2>>{7XmT z-;Iq|R*y$95uWvv^z63*f4gA06ALZ(y3<+#aR*k@dx2}Qp6M36JylpXJm2m6Q)m-5cUA&;{i010}Ftbl1SVuH1)JB46`~Q}w~hD{p)& zUsj`fl`S6M^u3Er4b-UsFJ27~PLb0K;W>UsNRjhuJRy!kE;%TZiG&;>nQoRV%1*W9dJ2IF^QGa zSM6(HUxs>LfWKw5N`9|>8NLC=-}mBpaGkTLQ^r#>RjFJX;t|1hcVov)b}Krzr*4Dln;ztoL(7V&Tfq~7a^I|w*jD;gN4Pq^ZB&c) rbfDJU)?wKfjv)r0oUT>ItlQ2>pZ)6p88xDQ>Nv^#{}umlN8rB$XyYfa literal 0 HcmV?d00001 diff --git a/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj b/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj index 7be3b1d..95a4de8 100644 --- a/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj +++ b/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj @@ -9,7 +9,7 @@ Properties Wox.Plugin.IPAddress Wox.Plugin.IPAddress - v3.5 + v4.5.2 512 @@ -21,6 +21,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,6 +30,7 @@ TRACE prompt 4 + false @@ -39,8 +41,7 @@ - ..\..\Wox.Plugin.Template\packages\Wox.Plugin.1.1.1.426\lib\net35\Wox.Plugin.dll - False + Ref\Wox.Plugin.dll From f8155a1afd309a493c82aae8b163e9ca8f7e8bab Mon Sep 17 00:00:00 2001 From: Allen Zhou Date: Fri, 22 Jul 2016 00:25:40 +0800 Subject: [PATCH 2/2] Add NIC Name --- IPAddrTest/IPAddrTest.cs | 42 +++++++++ IPAddrTest/IPAddrTest.csproj | 90 +++++++++++++++++++ IPAddrTest/Properties/AssemblyInfo.cs | 36 ++++++++ Wox.Plugin.IPAddress.sln | 10 ++- Wox.Plugin.IPAddress/IPAddress.cs | 29 ++++-- .../Wox.Plugin.IPAddress.csproj | 1 + 6 files changed, 198 insertions(+), 10 deletions(-) create mode 100644 IPAddrTest/IPAddrTest.cs create mode 100644 IPAddrTest/IPAddrTest.csproj create mode 100644 IPAddrTest/Properties/AssemblyInfo.cs diff --git a/IPAddrTest/IPAddrTest.cs b/IPAddrTest/IPAddrTest.cs new file mode 100644 index 0000000..2e9f3ca --- /dev/null +++ b/IPAddrTest/IPAddrTest.cs @@ -0,0 +1,42 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Net.NetworkInformation; +using System.Linq; +using System.Net.Sockets; + +namespace IPAddrTest +{ + [TestClass] + public class IPAddrTest + { + [TestMethod] + public void GetIPAndInterfaceNameTest() + { + foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) + { + if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 + || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet + ) + { + Console.WriteLine(ni.Name); + foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses) + { + if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + { + Console.WriteLine(ip.Address.ToString()); + } + } + } + } + + + var address = NetworkInterface.GetAllNetworkInterfaces() + .Where(i => i.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 + ||i.NetworkInterfaceType == NetworkInterfaceType.Ethernet) + .SelectMany(i => i.GetIPProperties().UnicastAddresses) + .Where(a => a.Address.AddressFamily == AddressFamily.InterNetwork) + .Select(a => a.Address.ToString()) + .ToList(); + } + } +} diff --git a/IPAddrTest/IPAddrTest.csproj b/IPAddrTest/IPAddrTest.csproj new file mode 100644 index 0000000..3206a35 --- /dev/null +++ b/IPAddrTest/IPAddrTest.csproj @@ -0,0 +1,90 @@ + + + + Debug + AnyCPU + {29B877FF-6E10-4F2D-BC86-3782714192C1} + Library + Properties + IPAddrTest + IPAddrTest + v4.5.2 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + {cb033971-3534-488d-86aa-fc0f05456908} + Wox.Plugin.IPAddress + + + + + + + False + + + False + + + False + + + False + + + + + + + + \ No newline at end of file diff --git a/IPAddrTest/Properties/AssemblyInfo.cs b/IPAddrTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5c6e88a --- /dev/null +++ b/IPAddrTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("IPAddrTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("IPAddrTest")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +//将 ComVisible 设置为 false 将使此程序集中的类型 +//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("29b877ff-6e10-4f2d-bc86-3782714192c1")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, +// 方法是按如下所示使用“*”: : +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Wox.Plugin.IPAddress.sln b/Wox.Plugin.IPAddress.sln index 08ef4ef..7c18746 100644 --- a/Wox.Plugin.IPAddress.sln +++ b/Wox.Plugin.IPAddress.sln @@ -1,10 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.25123.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wox.Plugin.IPAddress", "Wox.Plugin.IPAddress\Wox.Plugin.IPAddress.csproj", "{CB033971-3534-488D-86AA-FC0F05456908}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPAddrTest", "IPAddrTest\IPAddrTest.csproj", "{29B877FF-6E10-4F2D-BC86-3782714192C1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {CB033971-3534-488D-86AA-FC0F05456908}.Debug|Any CPU.Build.0 = Debug|Any CPU {CB033971-3534-488D-86AA-FC0F05456908}.Release|Any CPU.ActiveCfg = Release|Any CPU {CB033971-3534-488D-86AA-FC0F05456908}.Release|Any CPU.Build.0 = Release|Any CPU + {29B877FF-6E10-4F2D-BC86-3782714192C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29B877FF-6E10-4F2D-BC86-3782714192C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29B877FF-6E10-4F2D-BC86-3782714192C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29B877FF-6E10-4F2D-BC86-3782714192C1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Wox.Plugin.IPAddress/IPAddress.cs b/Wox.Plugin.IPAddress/IPAddress.cs index 6ac7897..18d874b 100644 --- a/Wox.Plugin.IPAddress/IPAddress.cs +++ b/Wox.Plugin.IPAddress/IPAddress.cs @@ -2,6 +2,7 @@ using System.Windows.Forms; using System.Collections.Generic; using System.Net; +using System.Net.NetworkInformation; namespace Wox.Plugin.IPAddress { @@ -14,20 +15,32 @@ public List Query(Query query) var hostname = Dns.GetHostName(); - - // Get the External IP Address - var externalip = new WebClient().DownloadString("http://ipecho.net/plain"); - const string icon = "ipaddress.png"; - // Get the Local IP Address - foreach (var ip in Dns.GetHostEntry(hostname).AddressList) + const string icon = "ipaddress.png"; + foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) { - - results.Add(Result(ip.ToString(), ip.AddressFamily.ToString(), icon, Action(ip.ToString()))); + if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 + || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet) + { + //Console.WriteLine(ni.Name); + foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses) + { + if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + { + //Console.WriteLine(ip.Address.ToString()); + results.Add( + Result(ip.Address.ToString(), + ni.Name, + icon, Action(ip.Address.ToString()))); + } + } + } } + + var externalip = new WebClient().DownloadString("http://ipecho.net/plain"); results.Add(Result(externalip, "External IP Address ", icon, Action(externalip))); return results; diff --git a/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj b/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj index 95a4de8..6160bb4 100644 --- a/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj +++ b/Wox.Plugin.IPAddress/Wox.Plugin.IPAddress.csproj @@ -35,6 +35,7 @@ +