QQ登录

只需要一步,快速开始

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

Asp.net编写的PING工具

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

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

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

回顶部