QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2688|回复: 0
打印 上一主题 下一主题

Asp.net编写的PING工具

[复制链接]
字体大小: 正常 放大
sskke        

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具
+ `$ b2 h( M7 X+ A     ( h- r' _( C4 o# O& M  v
     , B7 ]- _8 ?7 Q4 u
    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。
" }4 R9 Z# @6 `3 I1 Q     
$ A2 a2 P# k, P3 g' K1 }3 T     
( m# h8 A: w4 w) O/ N' n* L     
9 n0 Y4 M; Z0 V6 a& ~" e     此程序可以使用于 asp+asp.net 虚拟主机,时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>)的虚拟主机可以支持 。虚拟主机的其他的配置问题,可以见:<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A>
( N' x7 V! o4 x     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A>
" C, a) D' N1 R! @" L     7 I) Y, R/ g4 F6 i/ ^$ ]6 @
     
6 J( |9 _1 T& w# E# ?     
, M% i3 C4 q8 o. H! S    使用方法 ping &lt;hostname&gt; [/r]
/ L3 o/ T( B6 y) R+ C     0 J- K1 B! l7 Y. A; f! ]% o' p9 ~
    &lt;hostname&gt; 主机名
% R* b" A. f- W$ B) a. w     
* D( U& c) p7 r" L1 s    [/r] 可选属性,决定是否连续的 ping 远程主机。
" h! S/ R4 u5 Y1 [' w8 R8 E     
3 U4 E4 b; J% m6 I1 d     
0 q: H: [% X3 o- C" {$ X% u    下面是代码: 6 u/ [0 j" M  S1 s2 `9 l/ B! k
     
8 u3 v4 Y+ `& R7 k7 }    ///ping.cs
4 G" a; u5 O) g% r( _     * ]' D3 S$ Y  J) Y& N" G
    namespace SaurabhPing
% w+ g; B8 U. {1 f, a) }! G( c     3 a5 |8 O; [& f( N5 Q
    {
& C% h' _! i$ T1 R% [     ' g8 i- H) r% V1 }
    using System;
  `" `9 a- a5 b     
" J! K$ v/ q0 l3 d6 U! g  V+ g  V    using System.Net;
5 i, G2 D. t0 L' Q6 |/ Q( y1 [: _/ Q. b8 y     , }+ c: p, `+ J; u3 S  m3 J4 ~
    using System.Net.Sockets; 1 T* B' i+ z$ k
     
- b: h. [1 n/ G- E0 Z    /// &lt;summary&gt; + t2 Y. c. O6 c6 [0 X" I  |
     6 M. t* s; {4 \" x" O" N/ \
    /// 主要的类:ping / b& S' T9 R. p0 Z0 r- x, Z) Y$ i+ N
     
1 x( |2 Q) E7 s! @: Q+ {2 w( L    /// &lt;/summary&gt;
- {3 R: _4 F! F/ l# U     ' a7 W0 q5 a* S
    class Ping # W. h  E, W$ a# P  M. o5 u
     
1 L( g2 e2 `, S$ x    {
2 |1 X/ e' t2 |1 K9 a/ k     / E& X, O9 h" f- q9 E
    //声明几个常量
5 v6 r3 t# A; ~; @" L  d     ' ^& o$ S/ f; K3 W' d
    const int SOCKET_ERROR = -1; $ j* q. n, n( Z1 I4 v/ l4 B
     . H0 p! G+ D9 X4 c2 n% w
    const int ICMP_ECHO = 8; 4 f8 u: \, x8 r; ?8 j0 j- `  P& L# C
     ) w2 R+ D& |( V
    /// &lt;summary&gt; : G( Y7 f( I: ^5 ]* x# t' x3 o8 E
     
# @. m. J: q+ x3 a    /// 这里取得Hostname参数
* t2 |' ^  I* N) J- _     
& X/ y; m! Q. f- V$ G    /// &lt;/summary&gt;
+ t% M: H1 F4 u, _1 t2 D     
, Z6 Q( h$ t. ~. D/ q( ?    public static void Main(string[] argv) + }# x  i+ |2 [0 `9 K
     
$ S3 g9 G. H. q5 p    {
' V" O% T1 U$ p/ T2 |8 a     
: ?* K+ y+ s9 l' [; c. L    if(argv.Length==0)
7 N- c- R( U. K     
1 O9 \- A/ W: n5 Z( _- e' X% X3 v    { " {1 V: Z. v0 p4 e) O3 p
     + `3 q0 ]) u8 j% G3 u* r& p
    //If user did not enter any Parameter inform him
; `$ c; M3 B, `! e" w  H0 [     
- f/ k+ R4 v4 y  T+ |" |. m    Console.WriteLine("Usageing &lt;hostname&gt; /r") ;
. p7 {9 o2 v% G5 S4 t& Q1 Q     
; |' Z0 r* v8 B3 c) S3 P3 L6 f    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping");   L. R9 `( e9 l: @( k/ f
     " H) @" b7 {( x. ]- D1 m- F* L+ Q8 I
    Console.WriteLine("/r Ping the host continuously") ;
4 K) @" N2 c4 v) z; w3 i. K     + i/ ^, |% V. i! P
    } 8 N; p4 L, B( N) W
     
7 O1 o. O( A8 G    else if(argv.Length==1)
& ?/ P1 n3 ]( y% q) G2 Z       c, O5 _5 T$ _' c
    { 6 B* W( b+ s) E- ?
     
$ D9 Z! o) O& t, g    //Just the hostname provided by the user : y1 _6 l- D* C. ]# x
     
2 i4 h6 G, _9 i. N( F2 s8 ]: ]$ _    //call the method "ingHost" and pass the HostName as a parameter / G" p- J6 r2 i+ E! L1 q8 g
     # }" N3 J& U. p. z- [
    PingHost(argv[0]) ; " r$ a; u' z' p
     2 _4 v/ w2 ?6 J0 a! O
    }
; O  _+ Y0 A2 e8 Z8 r; r4 \     3 O) L: P- m4 G7 V1 d" B
    else if(argv.Length==2)
3 j8 c! `8 F+ O- Y1 B     
8 S2 W7 J- y  D* V7 D( z- e2 v8 |3 l    { # |& e2 [2 _$ k0 H( H% u& ?! r
     ' m1 `* t( d+ r8 ^% r/ Q
    //the user provided the hostname and the switch
8 d9 A" a2 P% X7 v2 H     6 C3 g7 C1 Y% I- z: k; S/ ?
    if(argv[1]=="/r")
0 Q; Q/ _5 d  p     
. q0 h( f2 `1 _3 ?    {
3 c8 H& B( r# p     
5 q1 k, o: h# [    //loop the ping program
# s5 t# _5 w- c$ y* g. l; a8 v" h     
- G% s  r' ~; Z" i: |    while(true) ' c' H1 W1 ^, d+ {4 y% A  p& E
     % Y- Y* q3 M9 c6 X' p8 p
    {
# e4 S  W: t7 _  C* j: D8 b     
. ^- J/ c- x3 q* P$ |    //call the method "ingHost" and pass the HostName as a parameter
  l! [, T& t+ t$ G( a     % ^* R$ x1 _0 {, M
    PingHost(argv[0]) ; * Z; M8 q% b* {2 f
     
- E6 |; G) ^8 I2 X    }
. b& ^7 c3 B% ~) O     
$ t/ m$ Q; _+ t9 R# L    }
+ }2 k, w* X. I" w5 _9 B     
" X, d2 ^. Z7 E# q    else
2 L0 W5 P) U$ x) ?- [2 _     6 T; N% W. T( |, d& B- @
    {
" ]' Z% W7 v5 w$ W- L6 V     ( s! w* d3 j: C5 D6 I
    //if the user provided some other switch
" u/ W8 W7 C( s8 d" R9 i0 e+ N     # t6 K+ q) x1 \$ a
    PingHost(argv[0]) ;
. x4 c- g9 b9 K6 Q+ ]     ; D' Y' J2 }5 |- L4 ^1 _
    } $ o/ i3 \( @# E, j; l# o
     : ?/ q0 q. B( x4 I$ R
    }
: K; V, E2 L# x  ~     / [0 X" n& E/ G$ s& Q% x' t/ k! c& p- g
    else
2 d2 {3 H& Q) s  G     
1 d* N' y3 L8 x5 `9 H1 p5 W    { * [8 Y9 d3 d4 b
     
. ^5 |# P" d- b8 d& O' M, i1 ?    //Some error occurred
1 O% G' [3 m; Z. C     , v" y* b/ G) B, [; j: o; o/ D! j
    Console.WriteLine("Error in Arguments") ; - G' @& ~) \4 h+ l( R, |
     7 ^* v& u5 q1 i3 k4 h; Y+ T7 _
    } 5 Y+ M# V4 p  p( W9 `& X; R& ]
     
! \0 ~! x. ~1 J$ I    }
$ l- |: y& w0 K     / P3 ?- ?# M+ _% M' Q" F
     
0 d" d. `9 r* d8 P    /// &lt;summary&gt;
% J& a# E0 A9 [# Q5 \" n     
( u* P) i0 C4 ~6 I& q    /// 主要的方法,用来取得IP,
( j) z4 O3 _& O# \2 {+ i+ I, j       ?! R0 x2 x) `) A* R  A
    /// 并计算响应时间   g. f$ \/ x: G
     
" \5 Z2 [# L9 s; E& I" a; J    /// &lt;/summary&gt;
7 }/ w/ r1 p- W3 Y" I- j     
+ t8 s! p4 `7 n9 p% X    public static void PingHost(string host)
; a9 K/ n9 p. r# j     ' b. C. p) \: z% f. V* u' b: B5 a, r
    {
1 w. X1 d3 _! D     9 W4 f% r( J# |4 b
    //Declare the IPHostEntry
0 u) Y$ I$ E& V  [( q: W& u     
8 G7 A$ {% x$ Q7 E9 ?    IPHostEntry serverHE, fromHE;
) ^7 f& W) K1 }- g; E1 C" m9 \     
) m" K6 t+ }! Q) Q% r    int nBytes = 0; ) c  S) u8 H! t3 Y" \0 g
     6 z9 g, n4 j$ f4 r9 [  I
    int dwStart = 0, dwStop = 0;
3 P: \) H% N7 g. {1 x5 h$ A     / h  J0 C: l7 O) x
    //Initilize a Socket of the Type ICMP
: Y0 Z! k# i- T. {6 M9 E6 O6 J     
& q; x; G' h2 B* m    Socket socket =
# @) K& V: q& H0 }. o% J     ' s' U  @( u" U; v1 m) D2 H- |. \& l
    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP); 9 @$ d# S- \& x) n+ R" k2 o$ Y0 `
     ; g" h$ ~8 |* W# j! d) m( Z' k
     7 s% k* R$ w" W  p* J
    // Get the server endpoint
5 {( y6 A, j' T9 ?. L  n     5 E9 s& O% u: ^4 X7 Y
    try
- t9 G  J* f; X- Y7 }' P     , b, O* r- E( e" N
    { 7 {% A  d$ T' M7 u: j8 Y* Z
     
( A6 O1 C) k4 ]' G5 g+ ~+ k    serverHE = DNS.GetHostByName(host); + C& O  a5 A2 _. a0 B
     : _2 T2 w$ F2 }( i7 J- b
    }
5 s% R) z7 L$ ?6 P& k     9 I) w5 g0 T3 g1 c  H2 z* l, u! j
    catch(Exception) ) @( X9 w8 ^' n- T9 o# J
     
, R! l7 l5 _; N! N& I  h1 `$ C6 k    {
! |6 K6 U0 ~+ c, x! L* ?     
4 d( T8 i  J- ~- w    Console.WriteLine("Host not found"); // fail
) p$ _. @% K, F) a% l  }+ v  ?     " l! j1 C, B8 S# k" r+ b) L' X
    return ; ' O6 j2 s7 [9 h$ T8 {+ t
     
3 D. M; f/ S% Q# A: _" a, [* O    }
$ s2 Q. A. f3 Q' F     
2 ~2 p  O0 }# W  V) C6 g0 T0 y     
  T# H0 I; \6 G& z    // Convert the server IP_EndPoint to an EndPoint
$ \. ^; H/ [: B$ @! E# J     8 T! M0 N. q' N' n5 k
    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0);
! S* G6 ?6 L, ~4 [/ z5 Y. {6 X     
: h$ u3 S2 q6 {, E* a    EndPoint epServer = (ipepServer);
# F, ?! k9 [( Q     $ ]/ i. a+ b0 ?& [  R6 k$ T
     
6 V1 J2 j1 P5 M    // Set the receiving endpoint to the client machine ! g  r$ @- h6 J! j! N
     
7 x- ^* F9 P8 J9 `* \5 B  {" t* k) K    fromHE = DNS.GetHostByName(DNS.GetHostName()); * j8 n$ S1 A$ L
     
' F4 G7 p2 T6 T4 ^8 q! X' R    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0);
% @' T& T8 I% b0 y/ R' e- A6 R) a5 _     % A% Y) W' P$ ?) }" ]1 U
    EndPoint EndPointFrom = (ipEndPointFrom);
' q  k7 v. D/ a( D( Q; U% C4 A8 O     3 l9 n" G. z# Y( b
     
# K' ]- X# I1 P    int PacketSize = 0;
3 f2 A5 }! @9 ?6 O" ?* b& [- K& g     
- Q: H0 p- a" M    IcmpPacket packet = new IcmpPacket(); ) _- `/ D! K" |0 _( l1 o7 ]
     % d% H8 J" T! H. r
    // Construct the packet to send
" z& _( K% P8 N2 H- ]     5 Z' `# O6 Z9 P( ?0 [: ~
    packet.Type = ICMP_ECHO; //8 # |% `8 Y$ B! Q6 J
     ) T$ u, J! {+ M- J: b) X
    packet.SubCode = 0;
, e5 ^" h7 p7 Q! n     + e; I; F% c" V5 t% |. F
    packet.CheckSum = UInt16.Parse("0");
' k2 F  P' O/ @/ ?2 z     
$ v5 F6 c% S( m. o! n    packet.Identifier = UInt16.Parse("45");
* J" I7 @7 E0 K4 F5 L! ^6 r     2 t9 n3 S6 `! A/ _$ ^
    packet.SequenceNumber = UInt16.Parse("0"); 6 ~! z% b' `  p
     
0 k! j! V" g, D2 z    int PingData = 32; // sizeof(IcmpPacket) - 8; 7 O* N1 q0 [. S
     1 J8 Q+ y5 T. R5 P- J* v& }  O1 p
    packet.Data = new Byte[PingData];
+ K1 \/ S- Y  j6 D3 G     " [$ X' i! w  _& L$ H& h
    //Initilize the Packet.Data 5 O  r* {& A+ M% p  c
     
& d, b7 L2 C4 h3 r" e    for (int i = 0; i &lt; PingData; i++) % E- @& n& `: j) c
     
3 f: x' I4 \! C2 S5 @1 Z/ }% m    { # X4 S# N3 \: {6 Y1 `* w
     
; c! t' o7 f  @( r0 n6 A, `$ g' S6 `    packet.Data = (byte)'#';
9 t6 T4 i/ Y1 j8 r4 y5 Q     9 a6 H' r! v- W! O% Y$ k: |6 |" h
    }
/ y: m, H$ [, c     
8 z# p- B0 d! ?6 c5 ]( N" i4 l! ~     ; q: ~! A# A% l0 N
    //Variable to hold the total Packet size
- _6 b, }. ]5 J9 l3 P6 l- G     / A/ b$ P! D+ u+ B' n
    PacketSize = PingData + 8;
  {: a- P5 a  X6 G& ^& G& ?% e" S     0 k6 c; T% }. c! i6 w# s. x4 q& Y
    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ];
1 |6 f9 J0 T! }$ n     + I- r' I2 C) N. u% @: [
    Int32 Index = 0;
  f& N& }2 [8 o' D% h     ) `" m6 v' t( c; g* H& W2 E
    //Call a Method Serialize which counts
) x, \' a4 C" @2 [" Y  h     8 n7 e  B% Q$ Z4 a6 P2 }( s
    //The total number of Bytes in the Packet
# U8 W- Y' A- g- r     
' N' C/ f" A: C1 f. _: A, w. E    Index = Serialize(
4 y/ L7 G( [; P, v( `& x9 H       ~4 {$ ]4 I% x5 o
    packet,
" Y1 ]1 y& \4 ?; s% r7 P- x4 }       r/ K5 `2 m6 P! i
    icmp_pkt_buffer,
' t9 _; Q6 d# Q6 a0 I       S0 T  r: w$ w4 t& R
    PacketSize, : ]- O' E  Z0 H
     6 {- {  n: D/ ^" B/ B2 ]6 `4 @: _
    PingData );
+ s" C  O- h* Q) l     
. T3 A; \5 [, L/ m; c    //Error in Packet Size
, @- B. y$ W+ u6 B     
1 ^' P$ h* t9 t# U9 d6 f    if( Index == -1 )
% Y& N: D2 _. S7 O2 _     
! V+ g+ F' |4 t    { " S, u- K# o2 b: D- B/ s" n% ]
     
) O% P/ R' {8 X+ {* w    Console.WriteLine("Error in Making Packet");
- A0 G3 m# `2 m9 l5 |, G( u     
3 q) l$ ^: d1 c    return ; ; H7 r: t" t( D  D$ |. G  A
     
8 D# O2 `; |8 y% R    }
  {+ z( ~8 _! z1 [     
! H  x  w- x# {5 [7 p     
: R0 m5 o8 z/ w, b: G9 `2 L    // now get this critter into a UInt16 array 9 T3 |6 B* Z# U+ y1 N# ]0 O
     : Y% h+ h  j$ h' z# y
     6 e+ @! x1 V) e
    //Get the Half size of the Packet 6 e  B6 g+ m$ R' z+ }4 f
     
8 s% t9 _/ s8 ]5 F: @  j    Double double_length = Convert.ToDouble(Index);
: |+ B- K0 ?* J& T- y7 ]8 i     
, s! |* a* F$ X/ }    Double dtemp = Math.Ceil( double_length / 2);
. G( M+ F' j$ L7 k, k       z8 u: ]. A$ I: E3 l- T
    int cksum_buffer_length = Convert.ToInt32(dtemp);
/ s. P% V  f: b/ G9 a     # D* o3 t( V/ i& ^) S
    //Create a Byte Array
. ?3 }8 q" K. b4 T# M     6 E0 x3 |, H2 o4 _$ m# R
    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length];
) N& s  {4 N! ]+ t     0 t& b' K1 p% _5 S) L# v+ E
    //Code to initialize the Uint16 array
$ Y: x# u/ I& H6 g6 G" T4 v8 O     
& k0 [6 G3 _. k    int icmp_header_buffer_index = 0;
% d4 o2 R8 I7 i0 j     * p+ F# E9 R. R
    for( int i = 0; i &lt; cksum_buffer_length; i++ ) {
+ {1 I3 F  h, a' q     . c! ^# s" G, q% K4 {
    cksum_buffer =
5 G* q/ M! S' E9 {     9 E: T/ p/ B; q6 O( k, j3 t- L% {
    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index);
; y3 ?$ t) r" b% J  V, [. X+ U     " u- Q, c, d. ~/ ?! d1 I9 K
    icmp_header
- l8 c$ l- z4 Y3 n     1 r0 I- b) c9 \8 R
    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 !
, L9 g" e$ u" i! ~0 W- i     
7 u$ H( T2 }3 X0 ]  d1 s     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询, 7 r. R& V, [) w% F" N2 @0 g' {
     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>
2 k# Y! Q  g) O) h8 q" ~& s<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器!
7 z9 W, }( E8 a% \9 {( y& ~6 _$ x     6 M& z) }7 i9 ~8 U0 F6 ?) Z4 \
    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A> , y5 O" v! F* }1 ~
    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A> 2 x% V& `8 h% O) z/ Q
     
$ }  _2 I9 p* M6 t2 z* y    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> & n1 A7 p$ {4 J2 {
    QQ 联系 :405881840 108786612 </P>
9 U) ^9 h$ w( j' L( ]) P<>----------------------------------------------------------------------------------------------------------------------------</P>
! D' x1 \( Y" t5 \<>
1 H( A+ Y; \% J2 ?       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A> ! t) X. [: s7 b8 s9 P9 C5 |9 R
     
, j8 w6 t7 [8 Z& [0 a0 w$ z    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A>
: `: B  _* k1 P4 @     
4 c$ S( M% E( [1 M6 m  k    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A> + a7 }3 C& A1 A$ H
     
# L; P! l5 J- v    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A> % t% {1 G' b. ^+ L# ^
     
( v  f* O2 H' _/ n% V7 {    动态域名——380元 就可以在公司里建立一个可以固定访问的服务器,可以应用于保密的资料服务器,视频服务器,网站服务器,邮件服务器,免费试用到: <a href="http://www.now.net.cn/cyberip/" target="_blank" >http://www.now.net.cn/cyberip/</A>  </P>
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

fastpost qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-11-1 02:35 , Processed in 0.319305 second(s), 57 queries .

回顶部