QQ登录

只需要一步,快速开始

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

Asp.net编写的PING工具

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

2

主题

0

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-14 15:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>    Asp.net编写的PING工具
8 J0 y# U7 t; A. o4 W6 u+ E     
1 U+ C2 J2 }) a; {0 B4 ^1 |& Z     
! Q# ]  o5 a0 V, L* @    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。 6 p. U/ m+ ]$ v* o
     5 x6 P1 g- a( k. E. `3 G
     
  h0 m8 |' V2 c$ x  l% D: O     7 j& w: y4 L* {8 p# N$ I
     此程序可以使用于 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>
% a3 n0 Z+ }' |4 H4 m: a3 X# \" j     主机+域名+邮箱 的优惠套餐,可以见 : <a href="http://www.now.net.cn/special/host.net" target="_blank" >http://www.now.net.cn/special/host.net</A>
+ u0 c; e  v) z: d4 e" l" p     
) E0 g5 Z, s* Z3 p     4 Q8 o! Z2 Q* X9 Q9 Z6 T- g
     ' J5 D& Y$ {! `4 f% L) T
    使用方法 ping &lt;hostname&gt; [/r] * k* G8 R) d( x
     
, d; e6 k& n* L8 ?3 v4 m    &lt;hostname&gt; 主机名
6 O* Z8 v) ^5 h. S0 ]     . e4 N2 K1 f) W% W& N
    [/r] 可选属性,决定是否连续的 ping 远程主机。   Q" P) _. |; K8 O, V8 Z
     - h  D. T) e; A7 X! y
     + W9 k# L9 B% k5 P5 m3 E5 f2 T
    下面是代码:
& m9 x1 }( B$ o( U( V     % S6 Q: H8 h( u0 w" y& Y
    ///ping.cs $ u6 {  Z1 i# M
     
; i* G- k+ }: z* o, ?% I+ F9 H    namespace SaurabhPing
8 ~0 J- F+ S- f! P* |5 `     
% F  f$ _- {$ M# Q$ E    { + n* O" H1 @% i+ w- O4 q
     
. e2 {2 H% H5 a& A4 t: S) [  H    using System;
9 k, R  z# `7 J* y, ]& f     , Y- M! {+ f) a+ {
    using System.Net;
6 A/ ?$ I( x, ^+ t# v7 l% m     
* k- ?/ @: R0 r6 D* }    using System.Net.Sockets;
3 \7 e8 k$ k. N+ h" t, _; H     
; u' ?5 @8 o6 G) ^    /// &lt;summary&gt; 9 T; R1 G8 p! _+ c
     % c9 Q* ]/ D% Q, C+ }
    /// 主要的类:ping " N0 u/ w( s9 c# y) k3 f& z
     
; A  e( D$ X8 s7 z/ C7 j/ g    /// &lt;/summary&gt;
7 ?1 n1 t+ o: W( N1 \     
; O9 t; _" Y* R( ^1 F. `1 ~    class Ping 1 e9 a$ _, P9 H5 O5 ]
     
/ U6 d' Q1 w' F2 Z! u2 B4 a    { $ N# k: @& o' j8 y
     0 \+ A7 o' n1 i% e
    //声明几个常量 4 o. T7 O: [" B5 [8 A9 P
     
, x. V: w; |, a# u    const int SOCKET_ERROR = -1; - ^7 ~/ n1 [3 ^* Y2 ~- T
     - w' Z5 d: A5 j3 c/ n
    const int ICMP_ECHO = 8; + E9 A8 C- _. Y, J3 d0 c* [
     - o3 e) P* Z  h; q6 _
    /// &lt;summary&gt;
6 p. Y& @+ f3 f     . H" s) @  F' _6 c; l0 ^
    /// 这里取得Hostname参数
5 [- m/ N, W& r/ {     1 E' i$ S6 {, q$ ~! M8 U1 C
    /// &lt;/summary&gt;
+ [! n9 U' t* n# s' a! L     2 R, G1 Y* m4 y
    public static void Main(string[] argv)
- {* \3 S( R2 ]- |     ( ~2 h1 r5 o6 e
    {
, n1 R! w% c+ _     ) \8 l! S3 l- P3 W
    if(argv.Length==0) 7 k0 z, H6 ~) F5 d
     
% k6 G0 e- V) F0 p; t) V+ i$ N, ^6 h    {
( o) q# Z' @1 l) Q- I% `% B     * P6 D$ y/ ^0 }0 g4 F* n3 v* T
    //If user did not enter any Parameter inform him
( c# L. N. B8 U     # `0 D3 P8 d4 T; |. k2 `
    Console.WriteLine("Usageing &lt;hostname&gt; /r") ; . x& z7 {+ K0 Q3 P2 q5 }, d
     ' N1 w1 B7 r" J/ V
    Console.WriteLine("&lt;hostname&gt; The name of the Host who you want to ping");
% R" M% F/ J( [& c     " X# S3 O+ {) ?6 d% r5 }
    Console.WriteLine("/r Ping the host continuously") ;
) \0 p8 K" b6 ?% d$ Q, {     
7 q5 y- L8 X7 P    }
0 z/ x0 g7 F/ ~: `. O     ! R9 O; [9 P+ Q
    else if(argv.Length==1) * K* T$ G- {3 h$ {7 U! Z
     
# P* Z2 F8 J1 h6 k" a- g& l" _. W    {
/ e, Y3 v. g) \; n" Z: s& ?# p     
; ]+ [+ P2 w+ G    //Just the hostname provided by the user 6 R6 L: _9 q1 L% y/ U6 {
     7 T% Y3 C  n# M
    //call the method "ingHost" and pass the HostName as a parameter
0 E1 j; k) S8 o6 v+ c1 b     
0 j! O1 F" ~3 c! ^0 U    PingHost(argv[0]) ;
) ^0 r3 o1 I% M: f& |  F- n     
# h% X0 Y8 i2 c$ F# V    } , _% |/ h' n1 T: i9 M, R
     ! b7 P7 N) I; `# k
    else if(argv.Length==2)
; r+ p! I& p9 d3 B( j     
$ `( @$ J8 Q. n& ^) c    {
" s( N! ?' n1 I' Y! T     
" g  F1 c& g7 l: X    //the user provided the hostname and the switch 1 N* V% h& q! g
     ) O- G" I' j0 Q! ]& F+ P  E3 F
    if(argv[1]=="/r") . b3 F$ B5 S! N5 V. _
     $ i+ c0 k3 O- k6 Z8 B
    {
1 N/ N) t' n5 N: d; z     
: L, ]' ]# W9 G9 }+ z4 Z    //loop the ping program
! \  i5 ~4 I$ i6 K$ i# `! l% \     $ ]$ U9 |) p3 H8 G; f9 O4 r
    while(true) * a3 ]. D( O* h& M6 S* E& h: i, S
     
: ?" H! u4 t  c) ~$ E4 F( n    {
8 H6 X4 E8 f, c, h; g     
# F  J, i- c8 ~) J! l+ w5 d    //call the method "ingHost" and pass the HostName as a parameter
2 K; e* q! z* j# s% v! l" w     
! |1 d7 Z9 v9 _1 G, @    PingHost(argv[0]) ; 5 X9 k# M; S( o% J
     
+ _* v) {3 n  A    }
1 {7 P' E8 ]3 n4 S/ V     
* j; B, J, l6 d( I# D    }
5 n3 [7 U6 n( k; L+ {, X* \     - C- j/ P( S$ T, S4 n5 z# C! ^
    else
& K+ M! r' Z( c; p0 M7 }     
2 S% F& j7 _* t    { / Z$ |7 \& N) t! N' {5 x
     + b) U; ]+ w* G, q; v
    //if the user provided some other switch
) O/ X9 O9 f' @. Z6 d* V     ( _0 t5 C6 N) ]1 u1 M/ j
    PingHost(argv[0]) ; 5 [  ^" m+ e4 U+ c
     ' S3 M. l! u% H" K, u$ c- W! G
    }
* s& V2 H. |  p" p$ P/ `* G& i     ( W4 D( F4 O5 N: _/ q4 i5 D& T
    }
* ]2 E+ [2 Q) Z' q4 N     
5 i" `* b" K  G4 R    else
1 L7 L& D5 g" p4 o1 I     
6 Z* |9 X: J% w/ C( x7 c7 g    {
6 }* r+ S* a% ~+ \7 e     ) |' O* i1 F: K9 I: R" o( T
    //Some error occurred
5 z2 h" x+ J8 `& m' E     
. O4 u- ^9 ?9 t8 q7 A1 R8 j* E& b9 f    Console.WriteLine("Error in Arguments") ; $ q* o  u# b% O; W4 z! P8 q
     
, U+ L9 [! Q+ H3 `6 C1 |; B    }   ?2 T; o5 \% R5 B' \
     ; r1 X6 x2 J- ^  f
    } $ D0 P: J" R  A$ x; O
     
8 g. K9 J- B, R% L" {: Y     
( [8 m- H: X# O2 H    /// &lt;summary&gt; % x6 K0 c/ E- @2 f; M1 E3 j+ f' k
     ) T! T/ P+ [5 B4 D
    /// 主要的方法,用来取得IP, 7 S, C( W% P. D# f" H( Q4 K
     - z( a+ A- A8 s; F4 H, e
    /// 并计算响应时间 5 I( y  O: @1 n. g4 U
     
; Y5 I/ G) r+ V( ~- j6 a! a    /// &lt;/summary&gt;
8 k5 t* Y) i/ E* [' x8 Z     
# N9 @4 X, a' {$ d5 q, o; B    public static void PingHost(string host) 0 U9 {4 g. {8 c3 E) }* G
     
( W! r) j! }* C& c+ V- r5 q    {
6 v2 r; `. k, \* X# @     
; j+ I; ^0 u; L3 c2 ?0 H# K    //Declare the IPHostEntry
7 X% Y" {& h/ R, d% O$ J     ' v: A- s: L) u7 Q% H
    IPHostEntry serverHE, fromHE; ( F. S. H; d* o" B) R' g3 R
     
7 i. m: ?2 x: u  U$ E    int nBytes = 0;
/ T$ M! D; f! e: x: Q! V( b9 z2 `     
" s& H- W/ \& P* f7 H# j; [    int dwStart = 0, dwStop = 0;
# f5 P7 i5 X7 _* L0 ?( j4 P     
, A1 Q7 a( t; ]    //Initilize a Socket of the Type ICMP - l; f1 l% P" c& u
     6 i' g  M8 |* n$ l# B& F+ D
    Socket socket = % q% k' _# c: z* N. m
     
( Z, U, V# g: V( }8 J# P  L- @    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP);
* R$ o9 G- q+ u2 Y0 m8 U$ A     $ X8 G9 P3 t  s7 H) C( e
     " Q& f$ _7 N6 M3 i% `
    // Get the server endpoint - v5 p7 c) ~4 t! ?; C# a
     1 E6 b8 _& x/ A. m# y5 U# ?# U
    try
8 i- l- s7 C0 i4 y. M     
6 y5 g- K) \* u0 _    { ; j+ C, ]4 g9 C
     
# u/ C) N: H+ z3 n  h" k: T; U    serverHE = DNS.GetHostByName(host); 4 K, l+ q: n7 p3 w( R
     
# O. e; s1 k3 v; {. q    } 1 b* W8 g1 L0 ~( y! [; h
     
' s) M' P& P* A- T, J    catch(Exception) % K3 _1 L0 h( y$ e
     6 I6 i7 r9 ?1 J0 j$ E/ v! q% M+ X  z5 ]
    { 6 h5 \( M/ t# R3 y( Q# L- ?
     
. S. \, @0 g$ |% a. |    Console.WriteLine("Host not found"); // fail
& H7 [) E1 i% }9 G  R4 a     
! J' W* @- X0 L4 F, V4 `    return ; ' i) m+ N7 ]6 ?0 S+ T5 \, Z$ R* m- ]# F( B
     * o% m8 h7 z! J( r
    }
% I6 f. u% }6 Z: O' P     # G( v+ u1 d6 [5 X8 j
     & Y8 d$ d- J8 Y7 {* E
    // Convert the server IP_EndPoint to an EndPoint
8 V7 Y! x* x- v  t. u3 Z     
  N# @3 ]" c: f4 d- A- F8 N    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList[0], 0); / G5 Y) T/ f6 @- s/ L) V) f
     
- P3 @! R$ w3 z. P1 w    EndPoint epServer = (ipepServer);
0 g) n/ m$ D0 n- j     
* `1 @/ X( |. a. @+ `( n8 ?     7 M" n9 U) h( L; Y/ E" j
    // Set the receiving endpoint to the client machine
6 ?1 d7 D: |1 e' T2 R! _     
6 ]1 A1 W1 _( y8 e$ b    fromHE = DNS.GetHostByName(DNS.GetHostName());
# f( Y( S) e8 D! j, g     ; I0 C. g: h9 V& P! |5 Q
    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0);
; q( D+ H5 b' }) S     + Y, {* J" g& b: V, G8 P) h
    EndPoint EndPointFrom = (ipEndPointFrom);
" W/ Y& v1 H: s* B     
! |& w- f9 \% \+ j& o     
* p' j8 o$ S# d$ w    int PacketSize = 0;
! C3 p7 s7 W3 K3 Y' f/ K! ?     
$ C" O7 u) p; [" Y$ d7 e    IcmpPacket packet = new IcmpPacket(); 1 v' F- q8 E7 Y7 W
     
- x& }6 C( I: _% y5 E, j- |    // Construct the packet to send ( |+ p; Z) K. J& @. m& H
     1 R; K9 d, H, Y1 q; W
    packet.Type = ICMP_ECHO; //8
: W( V) X# x! }3 G1 K+ F# @     
" b, a- o3 Y) J4 a/ _; f* f6 R4 Q! }1 G6 f    packet.SubCode = 0; ) a6 _* w2 I4 q2 P' f: B% `; G, ~
     
$ q: `8 E4 l* Q6 U! T    packet.CheckSum = UInt16.Parse("0");
/ d6 Q$ V) T0 t* C: ^) h  ]+ N     
. S1 \* X! X- R9 g) C1 ]( {    packet.Identifier = UInt16.Parse("45");
& ]2 {2 \6 D" @; |( m     6 ]: \6 _# L1 e" r/ Q1 Z
    packet.SequenceNumber = UInt16.Parse("0");
+ F' w8 d: E4 Y       j/ E. `; l8 }" o+ B( {
    int PingData = 32; // sizeof(IcmpPacket) - 8; 0 w, P9 u# B( l
     
( [( a0 h& _' I) D3 H0 f& x, ~    packet.Data = new Byte[PingData];
+ }, M/ Q0 a( W: k1 S( r     & V- ~8 E; z2 u; q" M9 m
    //Initilize the Packet.Data
& a, U$ T0 b! |; G* z' S       @8 c+ }3 g  B) i8 ^3 _( K$ B
    for (int i = 0; i &lt; PingData; i++) ! y. T& r1 V  k0 S. h7 {1 K5 P
     ; M" h  S1 k/ b' O9 T) h2 i1 b
    {
& z3 d$ `9 L% G     
2 h- R/ h: R, w7 E5 b4 P    packet.Data = (byte)'#'; 8 j. J, h4 n/ o' L+ Z" Q
     
; V8 B& ]% ?. [- o$ `& M  m    } ' z( r3 }- u# h! B6 d
     
1 K# P, {1 x; g6 m% u     1 o$ D% H7 b0 N
    //Variable to hold the total Packet size ; f" A. s8 e/ c
     
  h4 |5 |% k& N- E1 o    PacketSize = PingData + 8;   V) G; i: E, D. u- U
     
8 `$ s, ~+ w2 }, K# g# F2 R    Byte [] icmp_pkt_buffer = new Byte[ PacketSize ]; 1 G+ d/ `. i3 V% k
     
& `7 G, ~0 @% C    Int32 Index = 0;
9 H: x6 @& A  a8 x     4 I0 e) N/ `+ Q# y
    //Call a Method Serialize which counts
& ?4 B7 T& {7 w! b8 z, Q     
, V. l$ J7 i4 ~8 \8 a    //The total number of Bytes in the Packet
; Z. e- \# B3 H& W: b: ~) m& @       W4 k$ R" }& z* ]. w7 O7 y6 B
    Index = Serialize(
  E, ?5 ]' j& [) H' f     
: y& _: g( ]. ^8 @# V3 P. f0 a/ \    packet, % h! _5 ?/ u+ Y* `9 W* h
     
6 r- |/ X5 L9 Z6 h# O6 c1 w! V' J    icmp_pkt_buffer,
0 Z: g' W  P* t1 }" @- c/ B     ! e% L8 k  o0 c+ V1 ^( F$ i- c
    PacketSize,
$ [6 K3 ]( E9 a( ?$ \" }     3 [/ o# B0 {, [. Z# U* M
    PingData );
, @' E( f6 k* E' m0 K( t8 {, Y/ A     
' j$ f% ]3 d# ~( I5 q    //Error in Packet Size 6 O5 K6 K1 }6 m# v5 f& o8 `1 G- |
     
! [; N( [; s* X4 |4 `# F    if( Index == -1 )
: C2 Y2 ^8 x3 [( z: D     
- H* g7 T" q& d5 M    {
0 T" L2 `2 |4 _% N  R8 V( y     : f) B4 g2 B, {. i
    Console.WriteLine("Error in Making Packet"); $ _& ~! V5 U* A% L5 z3 q
     
2 S+ M% ^! a/ T' }9 u    return ; & b& K! Q# b* {# V8 q
     
) Z; e) `1 @! }3 a% e! H    }
/ n3 Y+ ~2 y$ D8 G% Z     ; L' g1 |2 L+ B
     
# y% ?/ a" n4 N3 W) n    // now get this critter into a UInt16 array
( @8 g6 {5 L! U8 g: A) n: U     
% d1 Z/ n9 y5 L9 {$ V     
( e/ I  ^# o. c( y+ i) f    //Get the Half size of the Packet
0 e5 {% x) R, V! Z( i7 H# |0 g     3 x7 f; ]3 o$ m4 P" m8 K
    Double double_length = Convert.ToDouble(Index); 1 ]: T6 K4 F- e  z+ z# U4 y
     
" ~! |; l6 `: R) j# z    Double dtemp = Math.Ceil( double_length / 2);
7 m7 z" g0 f( ^3 m# t. T; N' L     
) E) g! a2 i3 l: L6 e, }8 M; h    int cksum_buffer_length = Convert.ToInt32(dtemp); ( y) }* c# U7 K8 x( Z7 x/ k. L
     ( K4 z+ b2 |- a- s6 [! V3 G
    //Create a Byte Array ) r8 _6 X* ~7 W/ Z9 Z& p8 a, O
     / _( n+ P; A9 w, y
    UInt16 [] cksum_buffer = new UInt16[cksum_buffer_length];
) Z% m( k0 @6 b0 o9 T     
% e* c1 q0 G5 {: ~+ v    //Code to initialize the Uint16 array
! ?( B7 R/ l) {2 @  }9 ~7 R     
. y2 E: ]% U1 N3 I, t6 e    int icmp_header_buffer_index = 0; ( e2 F- d* i+ d8 ]# e3 K
     
# G' D. ?1 G; Q  e, J9 `# U    for( int i = 0; i &lt; cksum_buffer_length; i++ ) { - c6 h( }9 x4 O  v. {
     9 A( m8 w6 {7 H. u* D& E
    cksum_buffer =
: D4 _3 d) y8 X/ D1 |7 I     , }' ^+ }1 O4 N
    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index);
: s8 t5 m0 \; A% [5 n# O     
/ W& d$ t; F. R# t    icmp_header
& j6 E0 ^$ v9 U- W7 N, G     
9 [( @% S( z  b' Q    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到<a href="http://www.now.net.cn/host" target="_blank" >www.now.net.cn/host</A> 订购后可试用 !
2 d9 d* G  k1 y5 L. M: c  [     
; {: G5 Q( c9 m! Z3 U     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询,
9 B; r& u7 ]8 J  w* o( {     欢迎随时联系 <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A> </P>
* z( T1 \6 o  i" u/ V( c/ R( p5 v<>时代互联(<a href="http://www.now.net.cn" target="_blank" >www.now.net.cn</A>) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器!
2 @, R5 I3 V+ k3 ?" B6 ?1 e) F1 i4 B     ' X: Q1 i9 D. y7 X" @: k4 f
    虚拟主机在线订购试用,请到: <a href="http://www.now.net.cn/host" target="_blank" >http://www.now.net.cn/host</A> : O, q0 C8 G4 U- n0 `) T- ~4 N
    域名+空间的优惠套餐可见 : <a href="http://www.now.net.cn/special/" target="_blank" >http://www.now.net.cn/special/</A>
& V* R9 a% Y7 g     5 F8 x0 `, J% h8 E) ^) B7 o" n
    如有问题要咨询,时代互联提供免费咨询电话,点击这里: <a href="http://www.now.net.cn/customer/moreline.net" target="_blank" >http://www.now.net.cn/customer/moreline.net</A>
+ [. W9 S" v: Q/ \    QQ 联系 :405881840 108786612 </P>5 H# }# J; [1 I  ]" @' F% V- F3 z/ y
<>----------------------------------------------------------------------------------------------------------------------------</P>
0 Y3 H7 S( ]3 }+ E% H2 A. |1 y<>
' w4 Y5 @: H1 L, _# v3 W9 l2 u       主机租用,折上有礼,租用9折优惠加送价值3600的CDN 主机加速器 !详情见: <a href="http://www.todayidc.com" target="_blank" >http://www.todayidc.com</A>
7 }7 d2 m7 ~& Q9 u: C     $ I- t2 }! b3 X% \; A% g
    企业邮局—— 立企业的统一形象,自由增加帐号 划分大小,不限制附件大小,繁、简、英3种界面智能显示。强大Anti-SPAM反垃圾邮件使用专业杀 引擎Anti-VIRUS,在线实时自动杀  ,价 超低! <a href="http://www.now.net.cn/email/" target="_blank" >http://www.now.net.cn/email/</A>
- w$ t/ y4 p+ t& f9 H     
# d" c8 ]+ a3 A/ F! v6 V    智能建站——3分钟就建立了数据库功能的网络交易平台,只要填写公司的资料或图片,就可建成网站。免费试用到 : <a href="http://www.now.net.cn/auto/" target="_blank" >http://www.now.net.cn/auto/</A> ( J9 Q. m% r& R( _. Z, m
     ' S# @* t7 p" Q" d4 a
    繁简通—— 300 元就给你一个完全同 的繁体网站,方便开拓 外市场!免费试用到: <a href="http://www.now.net.cn/fjt/" target="_blank" >http://www.now.net.cn/fjt/</A> 7 k8 u$ m8 Y; d% m$ G, ~6 W
     
7 h$ s- |( a3 t% c0 `. F' 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-16 15:49 , Processed in 0.422488 second(s), 58 queries .

回顶部