QQ登录

只需要一步,快速开始

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

Asp.net编写的PING工具

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

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |正序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具 8 K8 F! S! v$ L- y) F; f
     
( e- g1 D0 z3 J, F     ' q  g+ O5 b8 s7 u; ]4 P- W
    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。 ; R; H2 X: }% f$ Q3 \
     " L/ g$ P' Z0 k7 ^4 h; S
     - V9 E% x8 F# d4 r: `
     
- c; c4 A, N6 @' ^: P/ d     此程序可以使用于 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>
" }- `- Z4 G! C0 F! F     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A>6 A  I, c; |4 m4 P( S% o& d
     7 l9 c( L: V# J
     
! ^/ q0 K5 C0 P/ q3 ?     
6 R( w+ o/ O) u; K7 s; M; l. @! e    使用方法 ping &lt;hostname&gt; [/r]
8 G: H3 j2 d! ~4 g     
, ~8 u+ ~! p/ S0 N) k% C    &lt;hostname&gt; 主机名 4 W$ r4 m: p% \! E7 q' R
     
- d. E* K% [8 z8 T    [/r] 可选属性,决定是否连续的 ping 远程主机。
8 u' q1 r# ~8 k/ y4 a- I9 D. |! Y5 l     9 o" s8 O% B+ |5 Q. Y- X
     
4 ^2 x% h* q0 ]" ~3 q  _/ a6 Z0 t+ k4 a    下面是代码: % s7 i/ W- s  y9 z2 w% e( K
     
/ o! A0 x) A- W5 l/ j9 C9 }    ///ping.cs
$ V! O( t1 w7 D     - v" f6 ~, a% o" ~# K
    namespace SaurabhPing 2 W9 y( @6 }5 f% F( S
     ( x+ Y" W& g+ R, N
    {
+ J% q6 o$ m# a' n     7 g2 x  h. A5 ~$ J! C8 H. M" X4 b
    using System;
) Y6 w( @+ e& U, L5 A. S0 M     
3 D9 b  B- w" [; Z' C2 F    using System.Net; 1 B8 Y8 [1 R# j4 d$ P. y
     " s, k" U5 f$ Y( Q" }+ Q) }
    using System.Net.Sockets;
$ P& m" ^( f  }+ X7 G     
8 V# r' ~7 \* y6 l- M( ^) [$ M    /// &lt;summary&gt;
6 a8 b# J6 O) Z     5 `% I( n$ ]0 [7 c; C0 R
    /// 主要的类:ping 2 A2 K, O# K+ X- c- [5 x
     
+ ]9 h' ?9 {/ l; m    /// &lt;/summary&gt;
( ]" r- a9 z0 ?1 q8 A) \2 l1 M     
* l1 r: ^4 R' A3 l: {* @    class Ping " R4 i; S6 b8 J
     
( k* ~7 o5 q' N    {
+ X+ t0 e0 G! w     
. @' s1 A0 L+ w- \    //声明几个常量
$ J0 ?' t7 ?. a" d     
0 d+ P1 u, B( w    const int SOCKET_ERROR = -1; 4 O' f. L0 N0 p
     
, ~' F4 z0 W" p7 a  R3 J$ k    const int ICMP_ECHO = 8;
' z5 `' x4 e( G5 |5 S0 Y. r5 \* }     ( J5 H% T: T# r: E* r  k- G* ?
    /// &lt;summary&gt; ) n+ h0 ]4 o. _" ^/ t( ~4 j
     % t9 {9 k1 p. i* w
    /// 这里取得Hostname参数 6 [% e% i3 Q1 `# |. ?6 m
     
  F, \$ F5 x+ u    /// &lt;/summary&gt;   z) p+ c. `/ z, \& D
     - N" d9 t/ w7 V* H, `/ O
    public static void Main(string[] argv)
7 @5 z% B8 I9 F1 o/ |3 h0 A     8 X& ~) R" \/ x' Q( c. P
    {
! {: o0 Q' I% ]+ X: e     0 e9 C& M1 J; t9 Q- r, Y; j
    if(argv.Length==0) , B  Y; l- I3 B' L
     2 b9 z. d4 Y- s7 Y7 l# `/ r! M
    { 0 H! ?  K4 R, s, r
     5 n9 g' B( Z* C# Z+ _% _& f
    //If user did not enter any Parameter inform him
$ O! \3 C$ _8 l/ c+ O8 T, h       T* y! D7 n: J
    Console.WriteLine("Usageing &lt;hostname&gt; /r") ; ! Y3 K1 a5 }6 r& b3 f2 m, ^
     
9 j# e* t. [. A+ N: L+ w, g& m3 _    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping");
: x% v! @8 x5 p7 z     
7 n# n# k* g0 A2 N    Console.WriteLine("/r Ping the host continuously") ; ) ?/ G' E  f/ w
     
/ o/ ~! ]- E/ R$ }7 X    }
' o/ ~# e, t) r6 x& J4 C# ]     
0 q: q0 j$ c6 E7 w- T% k. g4 _    else if(argv.Length==1)
! P2 a2 N2 N2 h$ \7 s& L! h5 O     
* f# I5 ?# H/ p: ?    {
) d% B; b# T" \1 B9 w     
3 [9 i5 c( L; b! `$ M1 O0 l    //Just the hostname provided by the user
3 V, h$ z9 o* Q5 ^0 O     6 G# l5 g9 W1 B) v0 g- R$ Z: B# a
    //call the method "ingHost" and pass the HostName as a parameter
* p) o. k/ w- j1 W) f) f' W& W     " M/ l+ ^# N6 y6 x
    PingHost(argv[0]) ; 9 R4 ]. U  s% L, T) i- Q) z
     & y( v& _3 e: k
    }
* T; N5 t1 A4 [' J- N1 O) L     ! F! p6 C- n$ T- f' X7 O* {: z
    else if(argv.Length==2)
( R- B" ^0 D  v+ O3 k9 S     : D5 h" p$ i4 i6 M# c0 f
    {
& y6 {7 p  l* `( a8 n7 j     + T1 T9 s3 n  t, R6 v: }5 T- J7 E
    //the user provided the hostname and the switch
( \4 \, f# v4 h$ ?1 _     6 `; E: t: L# _0 O' X% T
    if(argv[1]=="/r") ) y) V7 b4 g- o& u2 _; v  w5 V2 g
     3 Y/ j& f' V1 U0 ]" G: l, v% [
    {
# a, ~" Y% e4 z5 [4 i. s7 B% X% L     
1 ?- u- d8 i; L8 \    //loop the ping program - ]  N& u& K" F
     5 w. p2 S) y. w8 ]0 O  Q
    while(true)
( _( e8 b* f" i: {& [     1 Q0 Z6 Q; z5 u0 {" p
    { " F* _4 R5 h0 b3 q$ K0 `' o1 y
     / Y# r6 V( c: g% Y# K  d
    //call the method "ingHost" and pass the HostName as a parameter 2 \' u% ]4 H1 D8 w# I7 G
     
  a. k6 L; {, Y! ]. o    PingHost(argv[0]) ; 4 n) p: @8 K) e# \  z1 ^4 b, m
     . O4 l8 U' ]$ i7 ?2 z2 h) Z: o
    }
+ h! P) \% q) `" q+ A. B5 l     8 d6 u4 e* a$ _& V
    } 2 L. q7 G- ]3 Q. |4 A" h
     ' z7 g; G. R, p2 P
    else 8 v6 O5 a7 a# }. M$ P7 _
     $ m2 z. y# T( K5 |5 B+ u, ]% {3 i
    {
( Y- I" ^2 ~6 m% I- f& ]9 l2 C     " G# g% n5 I0 F: `$ j$ r$ r. O8 X
    //if the user provided some other switch 4 y, y, _7 k* q7 l8 m
     
  T1 B% P! V$ p( c& \1 w: t    PingHost(argv[0]) ; , A) j% f6 B: u! Z
     : K2 z3 e" w: h& D1 A
    } 2 c' q: S4 ?9 f6 p
       T' f& G0 [* \8 l& X, ]  o0 m. B9 s
    }
  r# T! ^  T( F" ^2 ^3 b* f( t     ( f4 X6 S; F6 G. ^3 c7 s
    else 4 m; @: V! ]: g. R
     # x; C' L& A: f; i$ q
    {   W2 c% U* q# m: [3 p6 v
     $ l( V: f/ q' ^0 ~, ?
    //Some error occurred " }  S! s! G* ~. m# j  _- S
     
& R( m" f4 W9 ^$ D" M5 H, p    Console.WriteLine("Error in Arguments") ;
+ @* h( S6 y3 g     ) k! y8 g6 t  c* |
    }
& L1 F8 H$ f' }     
1 n9 ]4 ^# h7 c. I; G: n& m$ C    } $ R% K+ C! r; y, ~4 D( ]
     
) R! O3 i# G6 Y  W4 E     
8 A3 t' n8 `  q( a, c" Z    /// &lt;summary&gt;
4 p& i. f2 m8 r5 E7 @$ B, B     6 l2 ^, y5 k1 ?( D! r( w
    /// 主要的方法,用来取得IP,
3 m3 `# v6 s  F" C% V6 z     
3 \8 F" @+ p/ W& E    /// 并计算响应时间 4 C6 Q" q( I: y
     0 R+ f5 K' J. M
    /// &lt;/summary&gt; , Y" n0 j6 G" a
     
  C6 [+ H8 ^& y+ m    public static void PingHost(string host)
( r' s+ w) g: u+ ^) A( N  I2 {0 [     * f0 Z3 ~- m9 v$ C8 E1 W
    {
* c+ s% U( }. q& L* W: H     / o) y* O2 i* z/ k' |7 N
    //Declare the IPHostEntry
, |; D' C) j. g     ! O8 P' ?9 V3 E6 D7 |
    IPHostEntry serverHE, fromHE;
4 ]3 B6 v2 Y/ A0 g( N     ' H' ~5 _5 F# D: N) O3 E$ C
    int nBytes = 0;
4 U6 Z4 o8 B) g0 ]% d$ ]7 w     : X+ G: U( W) t6 ]0 R7 F, ?
    int dwStart = 0, dwStop = 0; ' ]: i4 i2 r; n3 E8 q7 t" r. |
     
" G6 t  O* i( v/ k4 H- Z    //Initilize a Socket of the Type ICMP ! H" N/ v% l) c" h" ?* m5 s
     
3 f# }3 P5 X+ d" `8 g+ k6 H0 g    Socket socket =
3 W  d% j$ B; @     
# S: X0 H7 [) h3 x& W. M1 o, `$ a    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP); ' j4 e# I* _9 A- A$ I
     
9 t$ N% X9 W  K8 n7 R3 F+ L! Q     
8 b5 j6 B1 a4 h5 u1 E6 v8 {% g8 G    // Get the server endpoint - [6 X2 b5 P1 o
     * m  @; m& d' w6 p8 Z4 B7 G8 P
    try
. w$ P  i, t5 w4 \     ; h) y1 B7 p% x
    {
. w1 @0 @& x3 W  G) i8 z) o5 d     
+ R- }. `6 k4 b    serverHE = DNS.GetHostByName(host); % h' R, }$ [' [' `
     6 p/ n) ?8 h, o
    }
3 w1 ]% y0 e6 a3 _1 I* I* G; [     
6 V6 v6 A- R) E! T( D2 P- e  |    catch(Exception)
+ {1 S$ w# W  D- V     " G: h- A5 a& ^9 }. A% d- z
    {
! {* B9 }* q: i# X+ X1 \) s* ^     
; Y: F% t3 @1 W( {2 @    Console.WriteLine("Host not found"); // fail
" {9 @8 W0 j3 t' _3 i* e, ?     : C4 s. y2 Y+ J; o. H0 d
    return ;
& I2 G$ x7 J" m. J' J( ?. S) o     , U8 k7 I; L  l3 ?+ O
    }
) R5 J/ r( \, \; m$ U* ^' s     
% C' ]( c1 _' t* e% D* V) N     
/ D/ n& F( M, G7 {    // Convert the server IP_EndPoint to an EndPoint
2 c+ `7 n8 z0 p& P; v4 D     
( T$ J, D4 E8 l( E8 \# U$ T. g9 F    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0); 7 K9 ?, Q" j! i4 g* n2 _$ M
     0 r8 u, Y6 H2 i3 d; v
    EndPoint epServer = (ipepServer);
+ a8 |: s' w- m0 E     
1 T) Q- J6 K" k     
1 Q  i' S0 M# |2 E4 |# t* t    // Set the receiving endpoint to the client machine
# c6 N( @+ G" l! T, _- `$ N9 S     2 S7 ?! b) G. s2 x7 Q9 x# O
    fromHE = DNS.GetHostByName(DNS.GetHostName()); 1 ]( _1 P" c# Z
     : D& f+ R1 `' ~3 i+ r% w" D
    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0);
4 |% \- y  ]! {* H9 P# S     
% s: \% c) w9 A' l, X9 W/ E    EndPoint EndPointFrom = (ipEndPointFrom);
! R9 m& g0 }+ b0 h9 n& R) z     
+ J0 ]; f) K, a  L8 V     3 V: S' `" E% L' w  Y
    int PacketSize = 0; ' s* O' Z* }, E3 i
     % g  i" ]+ Z" b+ x4 Q5 e
    IcmpPacket packet = new IcmpPacket(); 5 M& B8 x! F. S
     
. I3 G- I3 a0 R5 i' p    // Construct the packet to send . m! C  G; s# _( @. J8 k
     + b' t  c# ~- W: G2 S
    packet.Type = ICMP_ECHO; //8
! p3 g# z; q. d' g+ O     
- Y. B2 Y2 ?- f) y; G7 N% q    packet.SubCode = 0;
0 r# R- |+ l. R: r     
' w  C4 X0 P! x* D0 u9 ]9 z: m    packet.CheckSum = UInt16.Parse("0"); $ ^9 S' ~' J% l0 c+ \
     
9 c1 k9 M. m0 n" J, Y    packet.Identifier = UInt16.Parse("45"); " \3 ]; [/ V* Z/ k' R, b
       C3 A. B0 o* c+ ]! ~. l
    packet.SequenceNumber = UInt16.Parse("0"); : G( V# ]4 f; N  o6 g/ ^  B! y1 }: o3 G5 z
     4 ]8 N- N: V4 Q  O! a2 y( r- ]
    int PingData = 32; // sizeof(IcmpPacket) - 8;
/ Y/ Q# o4 j7 ?/ z. x# B     0 c0 F; \$ |" K
    packet.Data = new Byte[PingData];
% m* x3 }, y3 M3 `     
' Q, J2 ~) N) q% `. `, G0 q    //Initilize the Packet.Data : N% |1 r0 k# r( }6 H! e
     
) U  w2 F  a, [% w: X7 g8 f    for (int i = 0; i &lt; PingData; i++)
7 P* V+ [5 S. u  V. ~1 [. x' s     / x4 {' B9 i0 e: `6 f
    {
' p' _+ x+ f4 F     - k* d* J7 |# V$ c, Z2 B$ m
    packet.Data = (byte)'#'; 5 J, G% R7 J- J
     
1 H7 ]3 u! ]' i# I    }
; V) [: w0 l; |6 ?4 A/ q     
7 [4 _1 D: |' C     
& Y' c1 z, W* |0 h5 `* q    //Variable to hold the total Packet size
+ Y3 D$ m6 J! [     # }. t! u! z3 b+ F6 V+ E
    PacketSize = PingData + 8; & D# x8 L1 M. \8 t5 C7 l+ h
     9 ]1 Z- x7 |4 g0 A
    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ]; : z  h5 B+ I6 b8 r- f' ?
     ; Y; ~2 \, [* J7 V, @  d9 |
    Int32 Index = 0;
* t7 g& i' a8 G! K+ w- d     
$ e: D: I9 t2 I& n* b- M+ C  r    //Call a Method Serialize which counts 6 ^! k; ~' Y# B
     
, L1 f3 n; D; \% S! R+ {    //The total number of Bytes in the Packet 2 x4 L) y$ B9 X& S
     $ ~3 A$ ?7 K2 a2 |) N  g
    Index = Serialize(
9 h0 ^) N  m6 S; A" I* g3 r     % p% T7 p, {$ m; }, ~
    packet,
6 @8 d  U$ u0 E& K* [0 {1 Q/ }* y: u     7 Z8 G8 z, i' A' I
    icmp_pkt_buffer,
- H" N, F* P/ x) }, E     
4 ?8 |. l: _1 k3 a5 D1 f3 i    PacketSize,
6 i! ]$ z  t7 d% w3 r7 f     1 c& y; i2 w) ?' ]
    PingData );
# l+ q3 n5 [) w/ E0 A  e2 t; [     0 h1 d1 k( n+ Z( {0 x; i4 U' h
    //Error in Packet Size
2 I7 }5 P# I: o9 p2 Y     9 k% R5 y2 I$ R: m3 B4 |% B
    if( Index == -1 )
8 L. q3 f* n$ [: z# C% ?     
/ O( `3 ~; A) M, x    {
/ G7 n3 S/ ^7 |" O8 |9 V     
* _% [& T3 h/ c1 R    Console.WriteLine("Error in Making Packet");
6 F4 w% \: _$ I8 ^+ O% ~     + S. \1 a. B4 c. c: Y" @
    return ;
' J# T# Z) p) l5 e     . s8 S# F, N$ ~/ u
    } * z. [5 S' s% D. |! d) ~
     
( ]: O* w: @! j8 N3 }& \5 Z9 T     5 o$ Z3 G: R) N2 i" Y7 d  H% C+ w; k
    // now get this critter into a UInt16 array
' d4 ^$ b- P' W+ V# e- O     
, K" O  O  o& F% P  S" F' \" |     ; H- P: J3 r8 d$ B- ~
    //Get the Half size of the Packet 0 i+ O1 _* x8 A9 i
     
- F6 K* k3 j: a. D% e6 i    Double double_length = Convert.ToDouble(Index);
/ I, k% w4 F: E3 f1 k( B- b     8 S7 S) J% _* V
    Double dtemp = Math.Ceil( double_length / 2);
. ^# [, B! Q1 v9 z: V  l     : i" x3 n' r9 W' w- z
    int cksum_buffer_length = Convert.ToInt32(dtemp);
2 y4 S( J$ e* z7 N+ [  L) n     
+ j! c; `7 _& P# Q' X8 E. _$ h    //Create a Byte Array 0 M; |( |' h6 k9 A
     9 W3 m+ H/ L  Y0 y; v; E' z
    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length];
% i* k3 ^( M0 z9 e1 K+ v     2 A7 V5 H& T: D4 b2 k
    //Code to initialize the Uint16 array
. m0 P% f, \$ Z0 l4 _! o9 u     
4 b9 @3 j# A. \/ V5 o    int icmp_header_buffer_index = 0; . d1 H# k/ B9 j( T! F
     2 N. L$ i7 Z. C/ i/ L- b  c
    for( int i = 0; i &lt; cksum_buffer_length; i++ ) {
0 ~. z" C" w7 O: N4 t+ Q     ! _& L: ~" L0 P; p$ U) Y6 t) V
    cksum_buffer =
, J5 @. x. m' t; m8 Q     - g" l0 O2 W+ m4 J
    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index);
9 D5 ]+ m- ~+ `3 |     . B" n4 f, I( D: v
    icmp_header
5 M: F1 L/ J8 {' Z- S% b     3 g8 ^4 `/ b/ c' }
    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 !
5 Z5 f9 _3 K% e9 L9 g, k     . J3 z3 h1 \# C5 M/ n% O  B. j
     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询, - ~% t  \* \: G
     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>: L4 A3 d; t, i
<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器! 5 z7 J* R! h( X
     . |9 G. Y8 V% H9 R2 g
    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A>
# x7 X$ b, z7 M2 u    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A>
: Q" l* z9 r, E! V) N3 ]; L       ?- ~! o) J, h% o& R
    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> ; p' Q/ y0 k* [: V  n7 b
    QQ 联系 :405881840 108786612 </P>
2 g# |, W8 X) i" r$ Y; G<>----------------------------------------------------------------------------------------------------------------------------</P>3 G$ u4 P% ]) m; g7 P
<>
' t1 @  S7 b2 o       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A>
* k: x3 p; {  [     - J  _  A& r( v" v0 E
    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A> ! R# V+ H* k* X0 K! |1 {
     
7 b* g$ k) H9 y4 J# G  N" P    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A> 4 Q, [: }' W- S# e, T3 h8 V# ~
       Y; B0 L' A: O8 E. f
    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A>
5 j7 b$ M1 B+ O* q8 [) f     
- v' O9 _% k& q! E. M  o: m    动态域名——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 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-10-24 10:20 , Processed in 0.769947 second(s), 59 queries .

回顶部