QQ登录

只需要一步,快速开始

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

Asp.net编写的PING工具

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

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具 & q$ d* }" G" _9 y2 Y
     4 H" S5 ?1 w. |
     
- _( Y1 C% l. ^; u1 s  X    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。 % e3 E# |4 }5 z0 T& |* n
     
6 }3 C# \+ }) S- m: T     ! v( Y. V7 Q- x, _
     6 i) q. |# F7 h( n
     此程序可以使用于 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> 5 J6 Z9 u" u5 j( r
     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A>
) v: w- B2 y( T/ v" S- C     
# m& b9 u# p; |     
7 h3 }! s8 _7 ]3 D& o& z% F     
0 l  ?* r, c) L# ?1 w8 V; R4 G    使用方法 ping &lt;hostname&gt; [/r] - w- r$ f& j" _) u
     
+ B' V8 `& Q4 D" ~, Q    &lt;hostname&gt; 主机名
3 ?8 u' Y8 j- b9 h. b     
* B8 i# f( [0 S: A- q3 G, I) r    [/r] 可选属性,决定是否连续的 ping 远程主机。   f; v6 V; G# h! _; e" ^
     + [! l' h6 W* s- Z: {$ X, M6 F
     
. q, X* f- D6 V2 L1 p    下面是代码: 0 B2 {  u3 y8 k% X* Y
     
$ Y. t9 M/ k$ y' f7 ~    ///ping.cs / `* I* N* m  S/ W1 ?
     
  p) l* k4 a( t; J: M5 f" }    namespace SaurabhPing
3 v1 x; ~3 d# n7 ]& V     5 ?: S# I5 Z) Y$ r$ @4 |
    {
9 T; |# v- F+ `: k: E" }     
1 r7 G  [: |) {2 J: D$ I/ G    using System; 8 }! F. q; H# b9 q* }; B3 Z
     
6 l/ @1 d8 }6 k1 A6 e2 d    using System.Net; $ j$ y; V: s3 [; u- S( q: s
       y7 Y7 O9 E# j. ~9 j. Y4 u. K
    using System.Net.Sockets; % \6 K2 C6 A( r: l- {$ w9 F
     4 U0 N. _2 B6 G9 g' l2 \
    /// &lt;summary&gt; $ K' E9 Y/ j$ o0 W  F" C: B
     ; I' a7 j$ h8 c% |! w8 J
    /// 主要的类:ping
& d, I( b2 H' G; l- D8 e     - s. n7 s9 p. |' ^# _% o: Q
    /// &lt;/summary&gt; - _% h$ J2 Q( F- e
     ) u: N) r1 t1 D7 p1 {
    class Ping . ~4 _  _5 W8 l+ i9 L' \
     , X1 b/ ~+ I, V0 }9 n
    { ! [( O  I2 ~& N8 ~. R7 u% W
     
$ @8 M1 Y; L7 Z    //声明几个常量 : U9 {& h1 w! K* j  y- D0 p# {/ {
     : u2 V- I1 S2 n* E9 R6 n8 N
    const int SOCKET_ERROR = -1; 2 O5 S, ~9 Y2 w! o. I
     
/ ~" r0 T  w7 W8 D( o    const int ICMP_ECHO = 8;
' W6 d. w* }. _# w" f$ a     ( _5 F, e4 Z7 f3 c! }
    /// &lt;summary&gt; 6 U: j* i7 k% h5 D; Y8 z
     
6 L/ z2 u0 v- o( R! X' O9 _  }    /// 这里取得Hostname参数 4 W+ k* E2 S( z) V
     
# l/ S+ Y4 g3 k1 l8 u    /// &lt;/summary&gt;
  C' X& e/ h- j! Z0 r     ! p# o$ t. s4 k3 g
    public static void Main(string[] argv) * a% R3 r, o: z" _3 x9 ]
     . \" q# L- O9 [( }4 ~0 {# u
    { " `" H/ h. k0 J7 O* Y1 ?, q
     / H2 Y0 f; f+ g9 F$ v
    if(argv.Length==0) $ n3 e" t9 }+ m4 f, X& X) I: ~
     
+ B2 F* k. O1 Y! N    {
/ H" d* Q4 Y- v8 a     
  i; i( n8 I7 ?3 r: @# S  n    //If user did not enter any Parameter inform him 2 P9 g( ?- ?' s: n9 q! {" V
     9 p# P" I( R6 Z
    Console.WriteLine("Usageing &lt;hostname&gt; /r") ;   {+ h  j& l' i) |; {' O
     1 ~$ x( Z& T8 E  p# O
    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping"); * ?3 V& V3 X8 r! \: L: n8 x
     
- W" W0 _3 |: t9 i9 W    Console.WriteLine("/r Ping the host continuously") ; 0 \+ T' R4 f& w8 X$ ~# N
     $ U$ U$ m1 v' x4 s+ q
    }
3 [# e( N* k1 L5 G     
. D/ A- h# i% O8 u! f! [/ [4 ]    else if(argv.Length==1)
) s# g! {, P% G1 K' X. b  _; j* p2 @     + d9 B9 s# w8 t$ K/ ]5 J7 w
    { 7 [% x' X0 W3 L4 N
     
7 w5 W; c- J8 d& a! V% x7 |    //Just the hostname provided by the user # F+ _- t3 r1 {* ^2 b3 p/ u
     ) s! t- S" y' f# B
    //call the method "ingHost" and pass the HostName as a parameter
. [7 K/ O2 X5 U* c1 H" d6 s     
$ f9 U6 \5 F* }5 I3 j; Q* I6 I    PingHost(argv[0]) ; 2 C+ Z2 X, @+ `, X9 x
     % s0 B! m8 h, B' C
    } - a/ Y& Y9 q1 t4 l
     % D2 C: D; I3 ~
    else if(argv.Length==2) % ~# ], a9 P. X+ R# H" P. _: D
     ! Q4 |) ]" I, X9 b4 r& v
    {
$ P' e" @5 C0 @/ y* l     
/ _% L6 W- X- f+ Z    //the user provided the hostname and the switch # Z7 }2 \2 u% v. r+ o( {
     8 o, u' ^4 l: q# P+ F7 F: q: T
    if(argv[1]=="/r")
3 u9 d) N% l; S" c/ J- U8 q. `% Y( i     + |, U4 i: }7 _- K
    {
, Q+ d! J" g0 T/ R; i1 I) C9 E     & i" f3 y" v9 r, q' D4 ]/ k
    //loop the ping program & Q$ ]2 c. D; y* v" k, S
     / g& G* z( _! _) p
    while(true)
7 J* i0 G' P3 z* g+ R2 _0 o$ l3 S& r0 V+ P     $ z1 y4 v/ J2 z& o) b( v4 `6 V5 \5 y
    { $ P9 C* M7 ~  W
     
$ G4 \8 H/ \3 w2 k( d    //call the method "ingHost" and pass the HostName as a parameter . f8 M. \3 `4 L. `. Q2 T( U
     
+ b( d' D% \4 i" @; _- S. F    PingHost(argv[0]) ; % ^; C! t( P7 \# y" ~
     + Q7 \8 `) l2 V) {) e+ g
    }
/ v# l' O' D2 i2 X2 d     / ~0 L# D6 e1 r5 P: [1 ~
    }
) a- L& k6 f7 b% r; F8 V; v. N& ?     
0 G5 }6 K3 x, Y' Q0 o    else
9 r4 c  E, z+ j; r+ ]     
! T: d, P& \6 x8 X7 h& @+ G$ V    {
8 k5 v4 c. b! p% Y6 o9 J7 x/ N     
2 h; p& _* R- Q9 d3 y    //if the user provided some other switch
9 [- m4 @3 N0 [; K5 _) b. i     6 I* n" L- R, a% f; J* D
    PingHost(argv[0]) ; : D9 P5 |) o" Z
     
) T: l  O  ?# ^. }& m0 e' \8 W. I    }
: ?9 J4 |  _0 t     
, L+ M  _7 }7 l    }
9 Q2 g0 T/ U" {% O     2 b$ V: z1 C& [
    else ) Y( G! G, g9 W
     # v$ u. R  F- k
    {
5 K+ K9 Y$ U9 f( `/ C: {+ y     & ?! R- x- `3 y1 s
    //Some error occurred . }' t) R0 g6 r
     
1 {1 w4 N& o  J# ?$ [; a$ f: o    Console.WriteLine("Error in Arguments") ;
" Q; {( N: G0 ~, N( T9 Y$ D     
5 X/ a& I( A- i    }
0 A3 N0 h  _# ^% w2 f, A1 c     , Q7 U* g8 s* [2 R9 e! @
    } * }; @2 u1 B" j/ C% _) n* s7 K
     
. [) R; N% f- \7 R! j; a1 ]( O     
, K+ N  C) ^1 C" F    /// &lt;summary&gt; . U& c# }$ R: {& \+ o& g( o) S
     3 W) @2 i* _) U/ ]- X; E
    /// 主要的方法,用来取得IP,
9 t" T% Y- c/ [     
. X; J/ _& o4 b    /// 并计算响应时间
) k) Y( ^* P, [  m" W9 ?     
* w7 T8 f+ p2 |4 S! C    /// &lt;/summary&gt;
) {: l9 I( x- {8 A+ |6 i. e     : ]: r$ K2 m! g8 Q
    public static void PingHost(string host)
8 E1 T9 D& |8 d/ d" J1 K* t     
4 E5 f, f) g6 Y    {
2 E/ `% B! W8 x4 h4 p9 V3 q     
% Y, w# y% R( W2 }  ?    //Declare the IPHostEntry / m  `8 X, d! {0 Z
     8 s$ k6 a4 q" z5 K  H6 ?0 P3 }4 i5 u1 [" d
    IPHostEntry serverHE, fromHE;
3 `% h; R* S% F" {* S* D& v) v     5 L3 d& r( d+ ?/ l
    int nBytes = 0; / v5 c$ G/ S+ t. s. b  g7 ]
     ) g% E8 G6 m4 K9 V% H) k
    int dwStart = 0, dwStop = 0;
; j8 I: X9 [1 L6 d; k     / b- `* O, C; ~- c
    //Initilize a Socket of the Type ICMP   ^" ~* Q% O' B( D+ }% B: Q
     / |3 ^* `. q2 |2 m& ~
    Socket socket =
$ l1 l! H0 s6 C8 j* P5 B) J     % K! w- I3 J0 ]. [! ^* k% K$ u/ p
    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP);
- m9 `) T: u; Z+ i     : C4 O5 t$ J$ p
     
  @  v# a" w; t& J& N    // Get the server endpoint 7 M9 k$ w* ?6 @+ b/ a
     
9 H; A6 d4 d* x    try
+ l* G) i  @- n4 K5 p     6 p5 {  @' O* h6 B* O2 R! e
    { * U. ~9 v8 j1 U, ]  _
     + {; m# Z! _0 }: F+ @/ B% Q
    serverHE = DNS.GetHostByName(host);
* M7 ^/ y* w  d" O     8 t8 }) _' Q( n/ g
    } & J1 S5 C6 w$ x
     - E6 X, ~) w9 l# S7 M
    catch(Exception)
) [7 V7 R0 X1 W     * X8 r3 \/ E* d
    {
: B- I8 ]7 c$ o) ~     * G' R. `* s  q+ _3 O9 l5 p
    Console.WriteLine("Host not found"); // fail 1 t. y2 d* g2 N" d& p
     
) c% x, L8 @1 Q9 R+ J* e. Z    return ; # O- F) p# }( N, O
     : X0 J2 r* }0 z9 |3 |0 x" B* n+ q. e6 r5 Q
    } ) F" u& X3 z$ G1 D
     + X9 c+ e# l, r0 C: O* W
     ( `" {. x# S0 s& D; ~
    // Convert the server IP_EndPoint to an EndPoint
( h; b( D' [' `2 ?$ y( F+ ?2 u     ) t1 [/ \9 x4 @! c: N( r! u4 o
    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0); 2 C4 n- I2 j( k" }* ?" o6 o, `, V
     
, z- w+ {" u+ A8 m8 H    EndPoint epServer = (ipepServer);   d% @/ t3 e' e3 i7 R% Y0 g6 A1 Z6 w
     
% ~% ~; M. ^0 `1 F3 H     
2 q& }: N8 B- h6 ~    // Set the receiving endpoint to the client machine
$ B  z1 l, ]: M$ H, R3 D  q" Y     7 J- @' P% b, X9 k+ U
    fromHE = DNS.GetHostByName(DNS.GetHostName()); 0 w8 r5 u; m; z, t
     9 d, V% k/ u* [; ^& B6 U% e+ W
    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0);
3 W, V/ R1 Y  `* v5 Q     
6 _& M8 Q% ^0 ?1 w7 w+ q    EndPoint EndPointFrom = (ipEndPointFrom); * y5 Z5 i+ v0 x, g7 v& a! {
     
6 {( H" n( Q; M4 P% D8 [     
1 n% S2 _( c6 ?# z( p2 p0 ?' F    int PacketSize = 0;   ^% f8 {% C0 p6 h
     
3 C# v1 n9 x5 z& J    IcmpPacket packet = new IcmpPacket();
& W. E; D0 I2 I3 l! C     5 }$ P- h0 f5 c  {0 I
    // Construct the packet to send 7 n  u* y8 f0 i0 a8 L7 G
     0 U* Q3 {2 A) R  n  x! x
    packet.Type = ICMP_ECHO; //8 , t1 S, m4 ~- e* i! ]6 D
     
2 N8 B0 M6 [, S7 Q7 ^+ {    packet.SubCode = 0;
7 G& G' O' }0 S7 Z' O  @: N     / F8 R3 C5 v% `0 ~! e# A
    packet.CheckSum = UInt16.Parse("0");
3 j* _# }/ i6 K% O3 k( J! b) t/ ~" B     
) P; o7 ?. v4 g7 I& }( S; k- Z    packet.Identifier = UInt16.Parse("45");
- Y" \% `# i% Z     
+ S5 k3 K- ~( O; D; F5 }; x; _. I& R    packet.SequenceNumber = UInt16.Parse("0");
* H0 _; ~) {8 E7 b# s# B2 R3 ]     
, X2 _# t+ j6 P! o3 i    int PingData = 32; // sizeof(IcmpPacket) - 8; 5 E  ~4 O# M" p6 r7 L# y
     + Q: o' k) Y: ]3 z+ f
    packet.Data = new Byte[PingData]; ; d% D. L9 p3 k( r
     * ~- T" k- w! l, y8 l* y
    //Initilize the Packet.Data % I% J) b# `5 e6 n0 `1 q: S
     9 C( e0 ~' R5 o/ X
    for (int i = 0; i &lt; PingData; i++)
6 G8 u7 i7 A; G) z     ) ]) w5 t1 y0 A1 f. E, `) S
    {
9 f5 B$ [0 m5 x$ ]     & ^, A; \& _% r: j
    packet.Data = (byte)'#';
+ q0 C- I" }& _+ C) `     
8 `' d8 E0 r* |0 |' R* a    } 0 L; [+ M# d1 G- k3 ~
     
+ ]" A6 s7 M6 Z! _) z. @4 X& ~     
/ D5 N, i# P3 x    //Variable to hold the total Packet size 7 N. q0 P% Z4 [9 r
     / p% P8 k8 ?, f$ }& t3 w  D8 a
    PacketSize = PingData + 8; + x2 b# W* y2 g- R
     & D! W2 p. G" O+ @4 ~8 |
    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ];
$ P) z7 R/ ^  ~8 c0 g5 s; C4 [     5 Q& K4 U5 E! Z, M1 h
    Int32 Index = 0; 0 i5 `7 r, K" ?4 ]5 t/ j6 r+ a' @* t
     5 G8 D# x+ l( ~7 I1 N6 X+ Y6 s; N
    //Call a Method Serialize which counts * p# r9 d# @" K& [  l6 k
     
  [9 i5 z7 V9 C" c    //The total number of Bytes in the Packet 9 V. H$ v* o/ e/ ]5 M
     
% R6 p+ I* P7 L  A4 f    Index = Serialize(
& j& b6 A* ^# G& P' q8 m9 e     2 w+ N$ S) d7 B+ A8 k1 M, S
    packet,
* X* x' C: s9 g* N  ]- E  ^     4 G" g* o# W) p
    icmp_pkt_buffer, ! k4 ]5 X, P5 |' z
     
) J& b! z- v1 [  g5 I; A8 W" S    PacketSize,
$ b$ R' p, \' |9 C" L     3 r1 a) H! l; f8 V1 d+ S) ?
    PingData );
+ }: x9 O- [  ?& j! m     
; \/ {2 p3 Y4 t8 f2 x: _! o4 i    //Error in Packet Size $ a8 J' e. z  `/ I1 V2 H
     
( I1 q4 E  Y9 t3 j. w% J* F    if( Index == -1 )
. C7 N* i, f, R# Z+ [- Y# }     $ C( r0 i+ o9 W5 g2 K
    { 1 F. e( v0 o) y6 N0 Y; l6 B  ~
     0 ?' R# h; Z& M1 }  c
    Console.WriteLine("Error in Making Packet");
8 f6 l1 X( o8 u     
7 w5 F! ~9 L! e& m: K2 P. y    return ; 0 z3 T- U0 U! g
     8 H$ b1 U/ E) O0 k& w
    } % e9 R' m- `$ g; a" G1 f& K
     
! d- D( o6 T6 g" N# u# o+ g# Z+ w- j# M     : k: c2 }  ^  K6 a6 A7 w7 |
    // now get this critter into a UInt16 array 3 r( |$ S$ X! Q
     
$ h) B: o& V" A% n% G* [# w     7 Y' N; v' r" I5 E7 G7 l. Y) ^3 J+ ^
    //Get the Half size of the Packet * o. c7 u6 S" ~! @, v" ~6 A" k0 R
     . i7 d5 z& C/ r
    Double double_length = Convert.ToDouble(Index);   h: k; p7 A+ R9 ~  m
     
" g) H) c# I+ G' Z2 J6 K    Double dtemp = Math.Ceil( double_length / 2); ' d) G6 r- e8 s8 ^4 [$ i
     ' Q" l9 ?0 s. g9 V
    int cksum_buffer_length = Convert.ToInt32(dtemp); 1 y. g, E" R$ T$ {( v1 c1 q+ W
     
/ O& K. ^8 b- |3 h; g4 `    //Create a Byte Array 8 x  b1 k9 {8 a' S
     % o! t3 P; u' x# K
    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length]; $ h" I& O* Z5 `5 N: P' s3 @6 i3 i
       E4 n3 u, I# z  \/ @4 F
    //Code to initialize the Uint16 array
9 {) O& ]' k3 `' k1 m; ~: S5 U' i+ ^' @     
2 C* o$ {' X0 Q+ h5 ?+ z) f    int icmp_header_buffer_index = 0;   K% w  w" Q: s7 P9 P2 x
     
! R5 t) {) O/ i; E    for( int i = 0; i &lt; cksum_buffer_length; i++ ) {
6 S0 e/ o5 _; y& P, F     
# t5 t2 U7 ?+ T3 D  Z' B    cksum_buffer = 3 q2 ?1 c; w$ g: E; C; ^2 c
     
2 P( R1 @, n( k9 I) c    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index);
, C/ p4 r# n+ r. P; ^1 d     9 R- I; ~7 [- ]( q" |; C
    icmp_header
) F; ]6 ^+ [! A  v     
+ F1 ^' k' a% {& t4 A: H    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 !
3 |# @5 n* A: d0 z4 n     ) I* _  q3 z4 p8 h
     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询, , D4 E/ @8 u. v* I. s: [$ \
     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>
% @& F; D) S! g<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器! 8 k1 t+ g* \" a7 Y
     
! h! k9 O' w: u! Q$ d$ g    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A> 1 Q6 S% W9 H+ C7 W; Y3 Y4 e
    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A>
4 F6 {/ ]$ y- M& @0 S* P     # b% ~* C0 x4 j0 n3 h  X/ j
    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> : J! v/ T: i9 i( {& s
    QQ 联系 :405881840 108786612 </P>9 @" ^( y0 D4 _! h- i' v' U
<>----------------------------------------------------------------------------------------------------------------------------</P>
( u8 Q% V* j, m+ a5 Y/ J4 s3 G9 t<>0 u3 M' |2 o3 y$ @6 H
       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A> / P- N/ C+ d% r: o
     ; p- L; q; |" J" h' j( a; R! N1 K+ ]
    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A>
7 m6 [/ s1 M1 n. w7 J1 t+ s5 M$ U, [5 Z     ' N! I+ y3 T7 B: N: K5 `5 L
    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A>
  K9 v. A6 K/ `9 E; t     
# A0 I. p& o5 b. M    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A> : J* B5 u& W" S. r, N# t
     7 g/ Y* ^% |# V6 W
    动态域名——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-6-14 20:33 , Processed in 0.600728 second(s), 58 queries .

回顶部