QQ登录

只需要一步,快速开始

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

Asp.net编写的PING工具

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

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具 6 [5 f: u  W  g* a% e5 ?# `
     
# N$ H' r: {0 I" T2 [' @     + Z' }2 M0 O0 k, ?+ ]" C
    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。
. \& q' r3 [+ D1 z! b" s, M5 d     
2 Q5 h0 c* h, U. j     
# Z! Y/ [) b* T$ I" d     ! G4 m- B) O+ 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>
  g4 H2 N" ~) m% |) w     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A>7 N. U  W+ r- d+ Y8 u% W( G+ i
     5 }' t" L- v+ Z9 G7 {* O
     
7 p9 W9 Z; I! y$ Y! y     
3 S+ A% B% u& _) i  a# ]) ^5 M    使用方法 ping &lt;hostname&gt; [/r]
  Y1 [4 A$ i) Y8 i     
/ e/ S% N/ Z2 _5 A& {! h( [    &lt;hostname&gt; 主机名
) x6 w, {( m$ k     
7 a0 W1 p" F4 F! \/ `4 [1 s7 ~% u1 A8 A    [/r] 可选属性,决定是否连续的 ping 远程主机。
1 |8 Y4 k, Y+ a) S, N     / ^2 o8 s& v, T! C5 k: w) u
     8 E/ y, {& r2 r1 {8 e1 O* q7 O) T9 u
    下面是代码: # ^* j/ y# ^/ \7 N  E5 y. F& _
     
) M2 k* s" N( S    ///ping.cs 9 R4 P- }4 z6 O
     
) |- k; A6 w& Z" i  ]$ V    namespace SaurabhPing
+ R8 a3 L' h" U0 X: u! I       r9 k  ]" r# H1 q( J; _2 a/ T
    { ; V9 i, n1 O4 F, ]
     
/ s- S% s7 h. L9 T& f    using System;
' o/ E# M* I- @4 t! B3 _     ( D* e" i7 ]9 ~) E
    using System.Net;
/ d% l3 n. [+ i5 @+ Z+ w+ T2 d     - S4 z  @9 h- B3 Z
    using System.Net.Sockets; . ~6 r/ ?5 [8 O- w
     ) ~6 h% N5 F' L* d- j" t7 o
    /// &lt;summary&gt; + e$ v) u# N" N3 f* S
     
; D8 d- u- B  t! g9 X    /// 主要的类:ping ! \9 g) |. [9 x/ T+ u$ @! m& O- F
     ' z% }) \" F4 d+ E
    /// &lt;/summary&gt; ) M1 ^: r+ u, S1 h3 p1 e
       f# o+ `$ n+ d2 E% [9 d
    class Ping 6 Q! D; j' f! r1 |
     
$ N4 u4 i- p1 C8 H( p& F    {
  U1 `6 Z0 d* Z8 K/ e; k& _     * z5 F% F' G# A' k; b
    //声明几个常量 , u% d7 G+ P9 J" b& v" u. x
     : O) |8 v+ r  y* w9 `
    const int SOCKET_ERROR = -1; * V" i! @1 K9 _4 j# [- q; \3 \
     
7 U& z1 o% y* n2 t1 l# P% C    const int ICMP_ECHO = 8;
* W4 u0 D) g% X7 Q! X+ A     5 D6 h* V3 ~# A8 M
    /// &lt;summary&gt; ' m7 y  O4 l+ D- A" F/ Y
     
7 Q" i! R7 f( j& K# [( E) q' A    /// 这里取得Hostname参数 $ [& k) H' n9 f* n  t9 G
     . h% x+ w$ g2 `: e7 r
    /// &lt;/summary&gt;
2 Q7 v$ H% P. c# z8 l     
  g7 C' h7 h1 d8 b% ?# L& u; q) p    public static void Main(string[] argv) 3 e- ]& u- y& C" I3 n
     4 }! W& i5 a8 q% g( V& Z
    { ' [3 z) k8 E/ ]7 ^4 l. b
     2 @+ `9 u# m. |
    if(argv.Length==0)
% z" k1 f% g& k8 q$ u* ^) g- o     
- f& f5 S6 v) y7 A8 @: c5 G    {
7 {# o, l) b. k0 m1 }7 T     
, M% Q5 ^9 ]. n! U1 `2 V0 P3 Z- s    //If user did not enter any Parameter inform him
7 T  ~7 Q( p4 X     
! J$ o; }+ D# q& b. s- l( x    Console.WriteLine("Usageing &lt;hostname&gt; /r") ;   Q2 t, _0 E0 S5 b' h6 v
     
  |; k  k# ]' Q- Z0 E: u    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping"); & g* q) v4 r5 `$ ?
     ) x; k! ]- ?- Q* {# y2 ~3 x
    Console.WriteLine("/r Ping the host continuously") ; + u% ^3 C* \6 k$ D. R3 D4 n
     7 R% v+ H$ Q) g& s
    }
$ R8 U1 g" Y" M* V; e     0 d& V6 l2 h+ [; g5 j
    else if(argv.Length==1)
" K1 W3 t* ~* k- @. n" L* a, j     - P, B0 X6 j" U' r- A
    { + s' A  V8 l6 n' d# j) w
     
2 e, _2 c' ~. l- P. r1 o" K    //Just the hostname provided by the user
  A) A( _4 a$ i' y! L     
5 B# R$ E' L0 T5 {" J7 u( j9 D    //call the method "ingHost" and pass the HostName as a parameter
% i1 g5 D: W% Y, q     
3 W9 Z' R: s  j9 x    PingHost(argv[0]) ; * I2 b  a" `% _/ i4 W- I! I7 d# s
     ( f- E" |% e. P, V9 [9 G
    }
  M+ A. ?* ^/ _& S, t# ^: X! k     $ C# y  `1 _1 a7 y7 a) V/ @
    else if(argv.Length==2) + u! R& }2 E, k
     
" \7 o- v) d, w$ q1 P    { , F6 ]/ a1 `7 U5 L) _! U
     
2 p: I4 D0 U$ J5 d' _- ^- X    //the user provided the hostname and the switch 4 i0 X% `% Y! H; s* F- D* [
     
) b! `. h; L3 x8 H6 Q    if(argv[1]=="/r")
+ J7 ^3 k& M; o, J( x& R     
$ _" Z9 ?8 Q$ j1 @7 z/ k. l    { ! q1 p. X. a) W1 x/ L% E6 Z
     ! C0 ^, t8 O4 o2 j6 m3 @
    //loop the ping program * b6 H% T2 H  S% e2 ^% F
     
! ~) l) F0 x6 G, T" R/ C; k6 C7 X5 F2 j    while(true)
# o; l0 D$ n3 A/ z" d* |/ a     
0 S% u9 o" y7 F* S1 F0 _, f    {
- O2 e0 W" V" G  S0 \, h) Y. i% [     
5 y# A; A4 V9 F    //call the method "ingHost" and pass the HostName as a parameter
, V8 ?& C# c: D9 q     
6 T4 W) O1 Y0 H% m! F/ x% T    PingHost(argv[0]) ;
6 }+ g% ~$ ]0 j2 N8 J3 u0 y     8 Y/ X+ @4 B0 R) ?" ^$ `, a
    }
, h) M% V8 T; s. ~7 J     
3 h* _& b, ?7 K# E" N' U+ X    } 0 P5 w) V3 v) e* R
     
# v/ ~( E0 M* z    else 8 }: Z1 V) Z' b5 x0 D8 k& o
     
$ Z& G/ ?0 Q5 n0 H( F    { 2 A9 V( n7 n/ G( z) f5 W
     
+ d4 [# d- k5 M  r    //if the user provided some other switch : j8 O8 w9 w  C5 N+ B6 x
     " i5 S- Q1 e: K& r" L/ K* c( X
    PingHost(argv[0]) ;
% V- n2 F6 g% p     8 i6 h+ ?% w) G8 t/ z
    } ' t5 ~' f) n5 ~
     
% y( F8 z# [. C; |) X. P    }
4 ?% ]3 r" U2 a! K% s       L$ g0 |0 Z1 f  q* k
    else 7 v; ^, R$ l" T7 x- H
     
1 ]9 s: @; \; Z, e6 f7 \    {
8 G9 U% o6 w' s8 H: W3 l     - `7 o2 V6 K) U0 n: x
    //Some error occurred
! `8 M! \1 ?0 b. U: `  N: R2 Q; I2 R     
, q, v7 b) h! }    Console.WriteLine("Error in Arguments") ;
9 A' N8 X1 P6 D# r4 U- b# h! S     
5 G6 W0 ~" t! |1 |7 |+ d5 u+ y0 ?  B    } 0 ^4 f, I1 M, J; [$ F
     
- {- i( r7 Y' @$ W" g1 ^    }
0 Y  v5 c2 K! c2 X" p" U: C  w1 h& F     : e0 X9 _$ W/ \' q3 \' i
     
' E! V# x# j0 j5 Q! @! ]' U! Z    /// &lt;summary&gt;
9 H# e. W6 k4 x6 |     & H& {5 w& g2 @# `
    /// 主要的方法,用来取得IP,
: g2 P) N( L  S$ B0 W. T; U0 Y& m     1 X: {7 |! \& j& D2 Q% Q2 P
    /// 并计算响应时间 2 a+ j/ g; R9 i8 g- E$ l; }0 p
     
, p  a" k! H. i( h4 ~. v    /// &lt;/summary&gt;
* h! p* `2 {8 W0 C     
- v, R- Q7 a$ e* ]9 ?- M" r7 S    public static void PingHost(string host)
. G' F) o) s# Y! c6 Y     
( ?* b# V, S8 _, _( p) S    { & `. s( l3 M8 l$ M
     3 L! r) D- ]! H0 \$ w
    //Declare the IPHostEntry
  W# k4 N1 Q3 w  O) t: ]) P8 y& C' N7 Y     9 n% q# K8 X$ ]# }1 q6 o0 P
    IPHostEntry serverHE, fromHE;
& H8 D' T# Z) q     , Y; l9 Q& A# n( @# y' L" W; u
    int nBytes = 0;
% f0 o, Y' d5 q7 }; p- ~; e     / [' i2 a( E, B9 ]: D
    int dwStart = 0, dwStop = 0; 8 ~1 r. v3 X9 p8 Q( n6 D! k6 V
     
7 Q& H9 [# d! O0 V- A  C% j- @    //Initilize a Socket of the Type ICMP
- A; v2 T/ n/ F% u/ [) I5 D: J6 T     
! `; R: p3 F! N  v9 y4 _    Socket socket =
% ]) O* I2 F& k* O     & l* Z0 j1 }' [1 a- g
    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP);
6 ]6 e: Z- e5 y4 a8 y     : X$ |! V7 e( f- K. ?: b
     
+ V  b: M$ k3 ]5 D' s; k    // Get the server endpoint 7 A# D0 Y% S6 K
     
, B  I1 d  `. Z7 a    try , L/ h+ r# R* F3 B5 a5 `; m/ u
       d+ Q+ i: }! z" d7 E, H8 N
    { 4 }2 w$ D" [$ ?
     / X1 \) @5 {. z5 ]. `
    serverHE = DNS.GetHostByName(host); 8 v2 G. j( I/ u( n2 r
     
' v, K' y8 \$ E+ e( q    } % I  A7 V6 D6 T
     9 V% e3 u$ s. t2 \( d, O
    catch(Exception) 8 ?8 L& O. @9 q: N4 b
     % R1 h, x  R2 j) \7 a  O) `& S( O+ Z$ T
    {
5 ]! e: N+ }* I& _3 y! L. @# P     # x) m- P( L1 s7 `9 ^+ Z2 V. t
    Console.WriteLine("Host not found"); // fail
) M6 v9 C6 ?$ `1 S" q% D. X# d     
2 S( s( b" p& ^/ v4 k: X  x    return ; + s2 P$ ]" K% z) g& @8 c* ^* e
     : b4 Z, f9 Z" z+ c& f
    } ) ~' n3 i8 N4 J1 e% v' H
     % Y; z& A# @7 w9 E, O, E
     1 d3 ?4 ^: L$ x+ p. }: @1 R
    // Convert the server IP_EndPoint to an EndPoint
  B1 T, P6 X: v3 q; N% l" A* ^     ' q; \& g7 [) \9 K" R, t) X  S: ?
    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0); 3 q' o- `7 F3 a
     
6 d. b1 g/ J9 a    EndPoint epServer = (ipepServer); 6 L6 {# K, I4 R* b
     
  u% K: x. D. M" M     
8 w2 k/ r2 v% _; \/ t    // Set the receiving endpoint to the client machine
' p0 `- q4 o. ^     
: @+ O2 J! ~; ~2 Y6 W6 B* s    fromHE = DNS.GetHostByName(DNS.GetHostName());
1 J$ `; |' l  W, _       M- T' r* q8 c* U0 M
    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0); % v7 P6 e9 O7 L2 u3 N# x
     
. ^( W: l1 \! h    EndPoint EndPointFrom = (ipEndPointFrom);
: i3 a, X" P# @& E& K     - e" C4 N" T; |
     
0 y2 b  k: w! Q    int PacketSize = 0;
. W" |3 j, s  ^; D& q0 C; o; z     
# t; I" W  M1 Q    IcmpPacket packet = new IcmpPacket();
5 f- X; g9 A, p* F     * c& Q6 l* ^3 I+ K- r+ \
    // Construct the packet to send 5 O' y- q& I/ q+ t9 @
       V' B' J" x8 U; T: M. C8 C( M
    packet.Type = ICMP_ECHO; //8
/ {0 Z! N: @. T; {# Z; O/ V& R8 p4 n0 d     
  l1 T; i1 d0 C+ w) K5 x7 X    packet.SubCode = 0;
# B) M# H: |+ S# m. V. F, |     0 ^0 Q4 N2 a, M7 G5 M$ s
    packet.CheckSum = UInt16.Parse("0");
% Y& J6 s9 D+ H- K     ( Z6 Z- o$ w% a# X1 @6 o
    packet.Identifier = UInt16.Parse("45"); " i+ C) i& N2 h3 N
     * H( S  K2 I% {7 F3 F
    packet.SequenceNumber = UInt16.Parse("0"); 7 q2 ]2 I' h+ s5 ?4 Y
     ' Y8 ?1 w. |6 V/ X5 N, {
    int PingData = 32; // sizeof(IcmpPacket) - 8; 3 W2 a, M2 x2 w9 ?# f2 h
     
# r/ T* z3 j" i6 }* h    packet.Data = new Byte[PingData];
+ R2 Z; t1 H% A7 C     
& P( {  I8 y: `1 ]# E( [    //Initilize the Packet.Data
" u' e& N+ I9 n2 O8 L/ ?2 ~. c0 V     
2 J/ ~9 P0 S* U9 I9 j    for (int i = 0; i &lt; PingData; i++)
4 a3 `$ I/ p  t  ?8 m5 ^* V6 X     , K, [/ f/ D; [. l1 ]2 t
    {
9 F8 H. Y: q+ p     
% c- s1 x2 N2 v6 j    packet.Data = (byte)'#';
' n" N' H- A0 j7 F& v! i1 _. }     
% N( ~! T6 h! |- D3 h; ^5 X: Y    }
" _1 u/ q9 p8 U. N; y. x# @     
( w9 U' [5 @* C+ ?" P, W     
* _  O0 }) u! g: ]/ @    //Variable to hold the total Packet size
4 x7 Z3 D5 w* T     . D! Z* _( ?. ?, Q6 W8 @% K0 v. n
    PacketSize = PingData + 8; - w- K4 I  `) ~# u9 C6 u" ^
     
  r% l+ U, k- d: ~& t    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ];
) c* s$ }7 S; [     8 Z$ G) @8 F! j, d
    Int32 Index = 0;
+ j* r7 ]- }9 i/ a8 L( o     
+ F1 e  s9 ^% D4 g    //Call a Method Serialize which counts * P) N& U$ }2 B( V
     * R- M) P& c# u6 ~
    //The total number of Bytes in the Packet
1 P; F. \9 g/ r# `& _: U9 o% K     
9 b7 a4 D3 ^' z. g    Index = Serialize( / e/ N1 l& q* v0 C) f! i
     : O* y7 K0 r# ?: w: U# v/ Y1 s
    packet,
. v5 r3 D  Y2 p! p     
" p5 @) d) w* N9 l, o    icmp_pkt_buffer,
( A0 U# k! _% `$ `- h* h# k     
0 F# Z1 x, d* T9 a    PacketSize,
! ^  B4 j0 E8 W% A! m     1 D6 p. o: w! l% M# J
    PingData );
/ C, n' _6 R8 O     + s3 v; t. n( r2 c
    //Error in Packet Size
. A6 L0 O3 T! a. q9 Z     ' H. X, C8 u( E' l
    if( Index == -1 )
; ~3 k7 A  q7 Z7 S9 Z. a( T' C     
! S5 j, ^' e: W; r) J/ J7 E. G    {
: f. H4 {7 a' C# a8 d" ~) M: {     
. n  Y- s$ l( M, W    Console.WriteLine("Error in Making Packet");
9 q$ v* r  [. g  m1 f. o; w       w) J5 d7 r! W) u" q' {1 t
    return ; . E. f7 q5 ^' Q0 }+ H$ O
     
$ ^& z3 l* b) j/ S+ U2 h& X    }
* N! {1 @! w6 T4 M( |6 K4 w     0 O9 T9 s3 b8 t, k& {* k% K
     2 i1 p! X  j) n
    // now get this critter into a UInt16 array
% j7 |' q- R" Q9 V     * a  y6 C/ v* m$ y) c  `
     0 v3 P, r& G" D- K
    //Get the Half size of the Packet
" G7 \9 ?& I' l( M) _7 z  O, v" ^/ o     " B' z, i+ U( l! t! D; e* H
    Double double_length = Convert.ToDouble(Index); * T& S. W. n4 O/ Z' B
     
2 y0 Q, v. Y, Q* D6 c- X, R: e" z    Double dtemp = Math.Ceil( double_length / 2);
0 F, A3 \5 \! [7 W4 P( K3 s1 |) V     
5 T5 @: z. I! Q0 L6 O) j    int cksum_buffer_length = Convert.ToInt32(dtemp);
" v* _3 c* ?8 ~7 r; Z* v- t9 S7 s     ' a" d) R- ^# W
    //Create a Byte Array
5 g& A4 C" k6 _2 M2 [- l) }     
; S6 o3 C' r' i: T7 H1 L    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length]; 7 l* M, ^9 C( h6 X! c
     - M4 W5 O$ k1 w
    //Code to initialize the Uint16 array * ~8 j* I3 W2 U+ J+ W4 b* L
     
0 P  |9 j5 {+ {& `3 O$ s! G    int icmp_header_buffer_index = 0; 3 o6 o# K& F' c7 y/ S
     , L! P5 b% {- ~& q% m" [; E7 E  S2 ]
    for( int i = 0; i &lt; cksum_buffer_length; i++ ) {
( D* M7 ^! F1 J& Z# D+ `2 g) b     8 O/ j# x* I! i1 r
    cksum_buffer = + C$ g. R- |% c
     + u, R, g, E$ s/ w& |% ]
    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index);
! [* a2 c& M8 ]     
4 W. r' E. p. ]  I    icmp_header
( k# ]+ G7 j8 p# ?; c     
* E  b1 @, H  Y) g7 Z1 Q3 x    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 ! ) y1 G4 C; x  _
     4 }/ |! B/ \! V! G
     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询, + g6 u+ A- d8 v6 G+ |* G6 I* I0 k
     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>
3 f: D' T' D. p4 i: x1 s<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器! ) K& Z9 k) E) J3 c. \
     
& |  E3 ]1 `/ Q' P2 }    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A>
2 Z+ n7 q2 ~  i- H    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A>
4 I3 {" m+ k$ B" b/ z% t, s     
% c& f' z% U' j5 @& N% y; h1 c    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> + S. x. ^! H( l+ B! d, e
    QQ 联系 :405881840 108786612 </P>; C/ p8 Y6 Z7 P# Z: v
<>----------------------------------------------------------------------------------------------------------------------------</P>6 @6 p9 L, R7 ]% v! h: h, P- _
<>
8 m3 g+ t) Y- @( w! N$ X9 v       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A> - M, Q: l1 [+ j! x: j" F1 a1 d
     
: B, F0 t5 ]! b) ?, N* t    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A> 4 e0 l6 _4 V; X# t! |2 z% r- t' k5 z
     ( n' A0 d. V' @( Y' P3 g4 M' \# v
    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A> ' ?* r' p. Q2 P2 x( X2 ]. ?1 M
     
+ @+ L' W) m; a, L0 F, f. B" f    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A>
( R" g, ^/ b$ d% @! D4 O     , L4 q6 w3 m) X! F
    动态域名——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-11 07:24 , Processed in 0.625315 second(s), 58 queries .

回顶部