QQ登录

只需要一步,快速开始

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

Asp.net编写的PING工具

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

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具 + h* D* ]7 V6 w% l1 ^) L; s
     
7 ]1 N0 O" d! n( c( ?* J     
6 Y0 n9 ?0 A& H2 z0 S" H' U    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。 , E1 v4 H, E. P% X- ^  R
     
& J& f  S  v0 c: z) x3 X     
2 t) L; p" |% z! r! @$ T3 y/ M6 l     0 L3 f* A' E& p) u
     此程序可以使用于 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>
& i4 w* A9 j: V  v+ I6 Y' N     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A>
/ ^/ m8 w5 u" h! A     . s1 D: i; d: l5 w/ x
     ( p2 [) `+ V' t3 Y
     9 i0 e7 i0 Q& \9 b( O+ d9 \0 o
    使用方法 ping &lt;hostname&gt; [/r]
( |# f( e' X0 F& Y- v8 t$ A     / `  N. E* r$ l
    &lt;hostname&gt; 主机名 + d; f4 |' i9 }& N4 Q5 E9 T
     1 L" O0 Q& A! A- b0 M! N
    [/r] 可选属性,决定是否连续的 ping 远程主机。 ) \6 j* V$ Q! S9 j. f
     3 S4 t7 b. C$ z$ V0 @6 s9 i
     / K7 P* s: _9 T9 s, m; O
    下面是代码:
) E2 x; d# C9 u9 n/ E: w     : u7 u. z7 b9 I& r
    ///ping.cs 5 V% u; @8 E+ z! P# o) ~9 s! c
     / M2 h& U! ?' R6 U# W8 d9 T
    namespace SaurabhPing
1 H5 Y( s+ n: S+ D7 z1 U     ; N( c" C- T. ], z# }, W0 @  y) D9 W
    { : U$ f) b8 x' t3 a
     
( y0 q. P" B& J0 I* q% I    using System;
: b4 q: i, s: J0 ~- x1 R& p+ d9 h     , G$ a1 K1 Z& _  J7 E3 g
    using System.Net;
* X. y! [& g+ k' o2 |9 w! K     7 a. F% ~# q# I9 y
    using System.Net.Sockets;
& X% d; U  G0 i. j' a- @     
; U! M$ p' ]9 c    /// &lt;summary&gt;
) i  ?$ {3 h, `( Q     , l, W2 N7 K  s& I) e, D( L3 s' p
    /// 主要的类:ping
  I* s8 S3 @# ]+ {% H' o4 L     7 @' s$ c! ^* r! w7 g- G
    /// &lt;/summary&gt; # G( @& n/ l' P7 ^0 Z
     
& k! Q+ J# E- K' N' N7 |) F! ?+ `    class Ping - r1 m/ z7 T. C' F- G6 Y6 N
     . ^& @9 S1 T, D+ V1 h, |
    {
( K! O) R$ m- G" W" v     1 @5 L( ^  ~4 a# \! k( z
    //声明几个常量 ; y0 g: n" f" G5 ~
     
. Q: Z8 B& W9 s0 a# g4 t4 D! l    const int SOCKET_ERROR = -1;
( F" C5 j. X7 g1 ?; z     $ C4 d! }* m' k% K  W* K
    const int ICMP_ECHO = 8;
7 ^) s# Z. S+ |+ r7 K) I     2 G2 z" Z5 t! ^8 A$ [: |
    /// &lt;summary&gt;
9 N  [/ ?1 P; T# W0 e. g0 [     ) K# @" T/ c. G( K; G& a3 f
    /// 这里取得Hostname参数
1 R. Q! ]7 \' O" I1 K& o     
- X  P6 L9 Z+ |    /// &lt;/summary&gt; 9 X7 b3 |. E6 ~
     6 j/ U0 y& G/ E; `% y, x
    public static void Main(string[] argv)
/ x# n" b/ z4 Z+ J5 c* i     
% f2 q% s' s+ d    {
1 ~  R. @$ a7 V$ q8 L     8 K2 x: i/ d: C/ p9 v2 v; z( S
    if(argv.Length==0)
! a8 K) z2 m: D/ d5 G     8 Q" ^! ~7 y8 g* o* v
    { 9 j! x; P  f! V! b
     % Y+ e) n6 e. X3 R; X% p7 n7 k+ U; K* P4 r
    //If user did not enter any Parameter inform him
+ N. q' a, B2 s     
/ Z. g+ W- n9 C3 x* E, f" i    Console.WriteLine("Usageing &lt;hostname&gt; /r") ;
) M* P  r' }/ [7 e( j* ?     6 y- v) K( _9 i" [4 P: m* m$ w
    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping");
" M2 `" O- P1 Y- T9 [     * c' ~' K3 r& m9 P
    Console.WriteLine("/r Ping the host continuously") ; ! m( k1 A! }- u
     
- }0 h2 J$ q- `- w- I9 f    } 5 f  i! ]( V" p. ~5 I% F$ U# \
     
( K% N0 ^9 q! m1 v5 H# E. ^) H    else if(argv.Length==1) ) i7 w; Z+ ^% d; X
     + @. \& T" V6 K' z$ u9 W# m
    {
7 l5 J$ R+ k2 y# A     & T& q; b$ _7 E2 v& q) N& F' l
    //Just the hostname provided by the user
4 i0 Y' @% N- g( Q& L8 d     % a6 e5 I. J% G
    //call the method "ingHost" and pass the HostName as a parameter 2 }7 A. G1 \. X
     ) p& ~* k$ p% ^5 L* J; p- a: P2 ~
    PingHost(argv[0]) ;
6 \( Y) D6 Z0 s2 N' s1 \" W     
6 Q( _3 q: J( y1 d    } ' z2 I5 \, h1 ]7 D! ]0 ^
     
2 t8 x" T- l. h! p! w% O, _    else if(argv.Length==2) * d& J3 Q8 i" J( ^
     
/ W- X: l9 b$ ]; x    {
5 ^# b9 {+ D1 |. @     + x: i' t% Q- Z7 D1 k( [
    //the user provided the hostname and the switch
- t0 [6 \  Y7 l! r     6 M$ |& T+ M: q* N& t* w* F6 |
    if(argv[1]=="/r")
: _6 E  R8 Y$ H, c" f5 @     ; D! m. U. B" r# F0 `
    { : r! ~* g/ f" q2 Z# o8 t$ Y
     . n4 v$ V6 N1 Y$ W: k' Q& `6 h! m
    //loop the ping program
8 n. i& |# ^6 }- d0 _+ N     
7 t% H+ y- o, Q( s    while(true) 7 \* k, B& l( n& ~( G7 e
     
, z+ G: K% n9 [/ T1 J* E( w( c- _& U5 u% _    {
' c/ M8 s. x  @' I     % b' H2 d6 R" n: ?7 o; G& p: M8 b9 {
    //call the method "ingHost" and pass the HostName as a parameter
% d8 k2 Q: T7 Q) x% W& a: w& |     
7 f% s* w  f; C$ Q, m+ u9 ~    PingHost(argv[0]) ;
. R" X* y& P& P# B) `) m" k7 W& A     * L; m# N; o3 l, Z# T
    }
8 ?" ]" V0 ~" o2 M- v! F     
+ o: B( f* u% j0 {# \    }
1 u) x; ~. F; W3 a; l: j# m# V# c     1 G+ K" x8 J) i2 J% C. o( W
    else
! N- w* x; C" `. `) V     ) a& f6 C- I( v! ?# t2 k. @( S! j( B
    { 9 C8 P8 }& f3 Q  W% P
     " @9 \3 e# j" Y1 b1 r! f
    //if the user provided some other switch ( Q7 N1 N% N  C+ g0 B- |. W0 m
     ) D* k# _. \: U/ ]% v
    PingHost(argv[0]) ;
, F3 b2 D1 b- S( Y  ~) e& G     8 ]2 l( U" G* O8 B7 c
    } / f9 ?, O  a3 u
     
2 @% o  K% b0 B( t" r; B7 W0 Y# r    } 1 T+ T* `& a9 u; @6 t& ?
     4 A$ o, g1 @% T0 j
    else   e/ m; t' A3 C* O: |; W# x' }
     + F9 h" W$ M: x; N7 R, h6 `
    {
  Y) y% [" p% H* g     * D% g3 [" E; k7 y9 z8 `$ [& E2 T2 R
    //Some error occurred % D! Q5 S2 J0 v% F! o% N5 f$ P
     
8 \. A3 p) c. a  M    Console.WriteLine("Error in Arguments") ; ) v) F6 R3 R" V1 I0 N& s+ |( z
     , \9 A- ]! i6 d5 y! S3 b
    } : f2 }( d" l# B
     
* }/ V" Y+ V8 w# {6 }( a0 V    } ' j+ F1 O' C1 y% ~0 w
     
4 a+ U0 O2 R: ~5 A. T9 k     
; q" T1 B3 l: @- W7 s& s# w) S    /// &lt;summary&gt;
( ^$ {! l( c: P0 w( Y: q     6 [) V! W& r+ W9 U! `/ Q! n* k
    /// 主要的方法,用来取得IP,
; o2 H. E3 Q; ^) y& ]8 H     
4 w/ F3 ]+ \& y9 c    /// 并计算响应时间 - P: T9 i5 s( o2 @7 w9 d
     
4 S" w& ?5 N$ d8 F9 x4 q    /// &lt;/summary&gt; 3 F) {' h$ J6 w* T
     
6 x$ }) ~# J4 ~$ h    public static void PingHost(string host) " s; P; s8 h/ E6 T0 B
     $ L$ U6 V5 |* t1 X* i
    {
# l' l. N; X5 v$ @3 P7 _' ?8 q4 `     ( n. @3 O1 k, T& ?; h9 u% S
    //Declare the IPHostEntry $ P# c3 y/ J1 E$ H  d
     
/ L2 V7 `* w- R: j    IPHostEntry serverHE, fromHE;
2 V7 p: g7 t- {  z3 w9 S. ]     + c( T" \, P: V! R: b
    int nBytes = 0;
. h3 b8 K1 y% t5 U     
1 s. a7 @# F3 E4 ~    int dwStart = 0, dwStop = 0; ! }  g( E' l: e6 L1 F
     
( d$ F! a" ~$ j3 ^! l    //Initilize a Socket of the Type ICMP - Y  k( ^9 j& y
     # t1 i2 M% c( L0 }
    Socket socket =
. n! I: T& X, i     
2 {& X1 g' r( b1 }% Q' j; h    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP);
1 a# C/ O4 j* e6 S) Q1 t     
( h5 D4 w* f# ]& [4 P$ k5 h     
! E. R& W) b. e& k; w; _. m1 ?2 _    // Get the server endpoint 9 r5 u$ {% P3 ?! g  Z; [( J
     . f$ U- E6 S# `2 @; S
    try 7 e- x5 ]# A3 a1 }& C
     
& ^: j) `2 R9 G$ v% g    {
( H5 z4 {7 [8 R5 b! p$ h# j     
' s2 o+ Y. q: m0 Q- e6 X+ O    serverHE = DNS.GetHostByName(host);
" _0 U! Z0 q7 \# ?* n* e' F     
7 N! ]* a; @% q2 P6 {5 S    }
" j& \9 \  o# B     
' V3 B3 p# `, k. ?0 E' t% Z0 L/ _5 G. K    catch(Exception)
& v: L  _: c; p3 r; O     
, U( r& K0 e/ C: O2 h    {
% T8 \# [6 ^& Y2 E     
# j1 a( E; u. }2 z9 C9 `% H! i    Console.WriteLine("Host not found"); // fail
. `9 f8 J4 X" k; G; f     , `5 v5 E+ |1 N; Z7 L
    return ;
' {9 M6 T% f; c( c     
9 O6 d6 {' l% h- Z/ F8 M7 ~0 [  m    }   ~" v- v9 G, W7 F8 w, w
     $ W, U4 f# w+ H
     
) A" M+ s4 v  i3 ~+ q3 w    // Convert the server IP_EndPoint to an EndPoint 1 p( n: i, L+ _7 H& f6 T0 N; g
     
2 U' @% l; r  a    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0); " V" W, @+ A7 }$ k2 }3 r! r. [
     ' k' _0 L) I$ l0 b% l
    EndPoint epServer = (ipepServer); $ X) ~9 G3 r. v( D1 F% [% a  h
     
+ F. ~  N$ v0 |' s+ T& f     
  v* x8 O7 l# i0 Y0 {# Y0 r. C5 B3 y- W    // Set the receiving endpoint to the client machine
1 ~1 F$ F6 n2 w' G" l2 N) q( F     4 `/ b" t  S" S2 W: o
    fromHE = DNS.GetHostByName(DNS.GetHostName()); / A$ K- x9 i2 ~
     
  F& A" j. E" ?) J3 ~    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0); & p9 w) D) F1 N6 {9 k. v5 q
     
5 B2 t7 U' G4 Z    EndPoint EndPointFrom = (ipEndPointFrom);
# [, B1 a& D9 H# L     
3 |* @9 ~  ^$ ?; V6 Q+ W( u  f4 ?! V2 Y     
6 g5 l2 A2 Y% @4 G    int PacketSize = 0;
) b  W4 |  T. z4 W$ o  R6 O     
& ]! C5 o& d0 i% L- Q    IcmpPacket packet = new IcmpPacket();
  V3 B( V3 |  s     ! t* E  L* a- [! f
    // Construct the packet to send
) i$ b- Y' U1 S# y3 T     2 D$ }) g/ }4 G# |/ d
    packet.Type = ICMP_ECHO; //8
3 q7 L) p; |3 C     - [2 Q! x8 l3 c! Z' W
    packet.SubCode = 0;
( Q, u& Y" z, H+ X1 i) F3 I     . m6 T+ O" o: H- w
    packet.CheckSum = UInt16.Parse("0");
3 H6 R+ j+ I% R  B7 N. @& G     9 W- s) |' `4 D  U
    packet.Identifier = UInt16.Parse("45");
" c6 p& u. i0 T% U1 _; e$ r# f     , Q7 j+ @: U% `# N2 H
    packet.SequenceNumber = UInt16.Parse("0"); * e8 a2 M6 p5 S  Y0 J) w/ r
     
0 f* L3 ?/ F6 g5 C/ ?    int PingData = 32; // sizeof(IcmpPacket) - 8; # T2 f$ k- {1 P7 n/ e9 N
     
5 o, o8 Z( j: @; p% n" o  V    packet.Data = new Byte[PingData]; ! s" D% I# d' ^5 V( }+ w
     " u+ `5 c7 z2 p. P0 b& l
    //Initilize the Packet.Data 6 T5 {5 s2 I  x6 Y9 u" `2 Q- H
     " @. ~1 {9 n9 l& s
    for (int i = 0; i &lt; PingData; i++)
  }# T7 y# v+ l1 m' |9 ?     3 t% e) ?0 ]9 ^: ^( V
    {
, m3 }9 {+ Z7 S/ v% e0 C$ j     
- v  F! E# b% }3 E) t    packet.Data = (byte)'#';
' u7 B. s6 T- h2 {* W9 q; c- u/ d     , Q: V. _% {. n2 a+ F7 g1 r
    } % b! J$ j2 K" x9 Z
     
0 K8 B$ w# w: f9 l/ {- a/ q5 _2 N     
8 L2 j9 n* R0 I) Y3 `- `) U) @    //Variable to hold the total Packet size + ~+ A. ?* k3 n+ H' U
     
* l* s* w) R2 Y" c, h  H- i  U2 f) T    PacketSize = PingData + 8;
% |, h" r# g; i7 T, g1 t     6 S. d% R2 X! S5 J1 I1 I
    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ]; / ^, a* D8 b8 r# x/ K
     " u3 h& ?: @, ^9 ^# C% b
    Int32 Index = 0;
8 ~4 @' \0 w/ K" y$ D+ ^3 }     % n$ Y! h" U& M, X3 T
    //Call a Method Serialize which counts * M# A6 D6 D$ n) H6 S. Q
       V# L2 d* s( Y; w0 m$ X
    //The total number of Bytes in the Packet
6 o' x5 ~! u. W) X3 c- n     
- C) p; D) ~7 y$ ^/ R+ i1 y/ J1 |    Index = Serialize(
0 x5 e) O! x* R+ |6 @     2 ~+ o2 y6 @0 M
    packet, 3 e' n8 {( Q% f  H. O! h
     8 T* U5 M( r# L2 i
    icmp_pkt_buffer,
7 s: y; B( y  ~2 X6 c     
/ i* E8 m4 Q; C    PacketSize,
. G8 A& K% ~2 f     4 l; H: e( {( p$ B
    PingData );
! q8 s4 N( Q3 c' I     4 t  X/ Z% ]" Y/ ^
    //Error in Packet Size
- e& S% C8 `0 \2 @. _5 B& F     ' X( R/ I( q& N
    if( Index == -1 ) 8 v' H" `. s; W2 d4 ~1 g4 T2 k
     
" \9 W" a, w" d    {
/ G1 M1 z" Z  N& \, ?& [+ g% q! J     - \4 O, u3 E+ m3 a# n& C
    Console.WriteLine("Error in Making Packet"); % u$ j4 O6 ?" D5 }* J* T3 Z
     0 ^4 Y- w- T! @5 ~2 u0 F
    return ;
7 D/ S+ \" y) w     . c5 O4 c" k. D& }- f" \$ w" ]
    }
9 L% Q. o- {! D     
( ?7 w" }: c# Y7 {) o     5 t  a1 I# j, z% t/ e
    // now get this critter into a UInt16 array
  t+ O1 S# _/ F. n* Z     
" S+ w9 K1 j, b7 l. [' O6 V( a     + i7 g: c& ?3 y
    //Get the Half size of the Packet 3 }7 w) |& F2 C
     
6 J# i2 ?; I. @% D! }  ^& x- g: w  ^* l    Double double_length = Convert.ToDouble(Index);
5 T& R. P' ^' ~. ?9 Q1 J3 h( S     2 L, n/ H- C% o6 c) Z5 r. D7 U
    Double dtemp = Math.Ceil( double_length / 2);
- V1 |, I- j& [/ u& ]     
* ?9 o, b0 x% z8 G, G    int cksum_buffer_length = Convert.ToInt32(dtemp); 7 N, ~8 {8 @) z
     
9 |/ g/ i) U$ t! {    //Create a Byte Array
4 g3 v# A  [" ~" W$ T     ; x3 }9 ~9 k. n* J/ N, D
    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length]; . ]0 S% Y, x( h9 p' n2 m) B4 c/ X
     & d6 w6 m+ {9 Z  \; m  x3 m9 ^
    //Code to initialize the Uint16 array . Z. g1 R5 E6 X' |; V1 V$ j+ p( O
     
) ?! y9 s% M; T4 R2 N9 s    int icmp_header_buffer_index = 0;
: i/ h8 E) Z1 [/ u     ! v. S! P- S+ E2 Q+ ^3 F& ^- Y. ^
    for( int i = 0; i &lt; cksum_buffer_length; i++ ) { 3 U3 ]( x+ {' p# [5 w
     . `6 z# W5 b! x* b6 B; R) t
    cksum_buffer =
" H9 _4 S! H( d     
' d; @* f- M& f; {    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index); ' }% ?6 U: h. o' r: q0 D
     & [  v! Z/ v+ c/ C9 A) R8 J/ e. h) f
    icmp_header ( `- L7 X. X, l8 V4 F
     
- w1 E( h# @$ X0 @! h. n) Q    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 ! ' ]. P) F% x. V7 F0 p( Q1 ?
     
! V# Q3 @  b, i  N     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询,
+ F9 A8 J8 _5 b8 i/ c' @5 [1 A     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>
6 k8 a9 \4 t: ^7 X* u<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器!
, v+ K) C. q: g5 e, o$ b( b4 _     
* v  r) S/ K% R! |1 R7 b5 t3 c    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A>
6 H" ^4 p) n2 |0 K1 J: [    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A> # [; E# z5 E; X& \0 k3 {" v
     6 x& ~% u9 P! J4 K7 R. m
    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A>
9 M/ F8 J: W$ O* N& z3 t    QQ 联系 :405881840 108786612 </P>6 I3 [! h; W3 n& p1 V
<>----------------------------------------------------------------------------------------------------------------------------</P>
1 W) M$ Y& i  ~& J0 P<>
( j/ I" x) D+ v( `       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A> 1 B5 [. x) I8 ~" H! d# p
     6 e6 r# j. m2 m$ S; P: p8 Q
    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A>
; Q9 ~0 B# Z! B, E4 u  M: Q1 @     
0 c! r4 c* n7 H7 F    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A> 7 Y+ h; R  e; Y/ l7 M5 ?
     
9 R8 o5 I3 R" |/ }# P. U* t    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A> 4 H" ~3 c, x$ o
     ' K6 o( q$ g3 S/ X; U! `
    动态域名——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-4-20 09:55 , Processed in 0.452992 second(s), 58 queries .

回顶部