pb中如何获取字符串中以逗号分割的字符

wangqin7927 2005-07-21 06:45:54
本人遇到一个问题:想获取"m_operator_manager:1,m_operator_maintenace:1,m_role_manager:1,m_role_authorization:1,m_role_maintenance:1,m_help:1,m_exit:1"中以逗号分割的字符,请各位dx赐教。
...全文
620 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangqin7927 2005-07-22
  • 打赏
  • 举报
回复
谢谢楼主的指点.
yclidong 2005-07-21
  • 打赏
  • 举报
回复
/读取参数,分隔符:逗号.
//返回: String 读取的参数.
//参数: String ps_message 输入内容.读取的部分被去掉.

Long ll_ls
String ls_out

ls_out=''
ll_ls=Pos(ps_message,',')
If ll_ls<1 Then
ls_out=ps_message
ps_message=''
Else
ls_out=Left(ps_message,ll_ls -1)
ps_message=Mid(ps_message,ll_ls+1)
End If

Return ls_out
sunqi_790817 2005-07-21
  • 打赏
  • 举报
回复
对不起,上边写错了!
string ls_char
string arr_char[]
long ll_i,ll_pos1,ll_pos2,ll_len

ls_char = "m_operator_manager:1,m_operator_maintenace:1,m_role_manager:1,m_role_authorization:1,m_role_maintenance:1,m_help:1,m_exit:1"

ll_i = 1

ll_len = len(ls_char)
ll_pos1 = 1
ll_pos2 = pos(ls_char,",",1)

do while ll_pos2 > 0
arr_char[ll_i] = mid(ls_char,ll_pos1,ll_pos2 - ll_pos1)
ll_i = ll_i + 1
ll_pos1 = ll_pos2 + 1
ll_pos2 = pos(ls_char,",",ll_pos1)
loop

arr_char[ll_i] = mid(ls_char,ll_pos1,ll_len - ll_pos1 + 1)

测试过的
sunqi_790817 2005-07-21
  • 打赏
  • 举报
回复
string ls_char,arr_char[]
long ll_i,ll_pos1,ll_pos2,ll_len

ls_tmp = "m_operator_manager:1,m_operator_maintenace:1,m_role_manager:1,m_role_authorization:1,m_role_maintenance:1,m_help:1,m_exit:1"

ll_i = 1

ll_len = len(ls_tmp)
ll_pos1 = 1
ll_pos2 = pos2(ls_tmp,",",1)

do while ll_pos2 >= 0
arr_char[ll_i] = mid(ls_tmp,pos1,pos2 - pos1)
ll_i = ll_i + 1
pos1 = pos2 + 1
ll_pos2 = pos2(ls_tmp,",",pos1)
loop


复习资料 1.1选择题 1.在一个C++程序,main函数的位置( c )。 (a) 必须在程序的开头 (b) 必须在程序的后面 ( c ) 可以在程序的任何地方 (d) 必须在其它函数间 2.用C++语言编制的源程序要变为目标程序必须要经过( d )。 (a) 解释 (b) 汇编 (c) 编辑 (d) 编译 3.C++程序基本单位是( c )。 (a) 数据 (b) 字符 (c) 函数 (d) 语句 4. C++程序的语句必须以( b )结束。 (a) 冒号 (b) 分号 (c) 空格 (d)花括号 5. 执行C++程序时出现的“溢出”错误属于( c )错误。 (a) 编译 (b) 连接 (c) 运行 (d) 逻辑 6.下列选项,全部都是C++关键字的选项为( c )。 (a) while IF static (b) break char go (c) sizeof case extern (d) switch float integer 7. 按C++标识符的语法规定,合法的标识符是( a ,c )。 (a) _abc (b) new (c) int1 (d) “age” 8.下列选项,( a )不是分隔符。 (a) ? (b) ; (c) : (d) () 9.下列正确的八进制整型常量表示是( b )。 (a) 0a0 (b) 015 (c) 080 (d) 0x10 10.下列正确的十六进制整型常量表示是( a,b,d )。 (a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f 11.在下列选项,全部都合法的浮点型数据的选项为( a,b,d ),全部都不合法的浮点型数据选项是( c )。 (a) -1e3 , 15. , 2e-4 (b) 12.34 , -1e+5 , 0.0 (c) 0.2e-2.5 , e-5 (d) 5.0e-4 , 0.1 , 8.e+2 12.下列正确的字符常量为( b,d )。 (a) " a " (b) '\0' (c) a (d) '\101' 13.下列选项,( a,b,c )能交换变量a和b的值。 (a) t=b ;b=a ;a=t; (b) a=a+b ;b=a-b ;a=a-b; (c) t=a ;a=b ;b=t; (d) a=b ; b=a ; 14.执行语句 int i = 10,*p = &i; 后,下面描述错误的是( a )。 (a) p的值为10 (b) p指向整型变量i (c) *p表示变量i的值 (d) p的值是变量i的地址 15.执行语句 int a = 5,b = 10,c;int *p1 = &a, *p2 = &b; 后,下面不正确的赋值语句是( b )。 (a) *p2 = b; (b) p1 = a; (c) p2 = p1; (d) c = *p1 *(*p2); 16.执行语句 int a = 10,b;int &pa = a,&pb = b; 后,下列正确的语句是( b )。 (a) &pb = a; (b) pb = pa; (c) &pb = &pa; (d) *pb = *pa; 17.执行下面语句后,a和b的值分别为( b )。 int a = 5,b = 3,t; int &ra = a; int &rb = b; t = ra;ra = rb;rb = t; (a) 3和3 (b) 3和5 (c) 5和3 (d) 5和5 18. 在下列运算符,( d )优先级最高。 (a) <= (b)*= (c)+ (d)* 19. 在下列运算符,( d )优先级最低。 (a) ! (b)&& (c)!= (d)?: 20.设i=1,j=2,则表达式i+++j的值为( c )。 (a) 1 (b)2 (c)3 (d)4 21.设i=1,j=2,则表达式 ++i+j的值为( d )。 (a)1 (b)2 (c)3 (d)4 22.在下列表达式选项,( c )是正确。 (a)++(a++) (b)a++b (c)a+++b (d)a++++b 23.已知i=0,j=1,k=2,则逻辑表达式 ++i||--j&&++k的值为( b )。 (a) 0 (b)1 (c)2 (d)3 24. 执行下列语句后,x的值是( d ),y的值是( c )。 int x , y ; x = y = 1; ++ x || ++ y ; (a) 不确定 (b) 0 (c) 1 (d) 2 25.设X为整型变量,能正确表达数学关系1< X < 5的C++逻辑表达式是( b, c, d )。 (a) 1=5) 26. 已知x=5,则执行语句 x += x -= x*x ; 后,x的值为( c )。 (a)25 (b)40 (c)-40 (d)20 27. 设a=1,b=2,c=3,d=4,则条件表达式a逗号表达式“(x=4*5,x*5),x+25的值为( d )。 (a) 25 (b)20 (c)100 (d)45 1.已知 int i,x,y;在下列选项错误的是( c )。 (a) if(x == y)i++; (b) if(x = y)i--; (c) if( xy )i--; (d) if( x+y )i++; 2.设有函数关系为y= ,下面选项能正确表示上述关系为( c )。 (a) y = 1; (b) y = -1; if( x>=0 ) if( x!=0) if( x==0 )y=0; if( x>0 )y = 1; else y = -1; else y = 0 (c) if( x<=0 ) (d) y = -1; if( x<0 )y = -1; if( x<=0 ) else y = 0; if( x<0 )y = -1; else y = 1; else y = 1; 3.假设i=2,执行下列语句后i的值为( b )。 switch(i) { case 1:i++; case 2:i--; case 3:++i;break; case 4:--i; default:i++; } (a) 1 (b) 2 (c) 3 (d) 4 4.已知int i=0,x=0;下面while语句执行时循环次数为( d )。 while(!x && i<3 ){ x++;i++;} (a) 4 (b) 3 (c) 2 (d) 1 5.已知int i=3;下面do_while 语句执行时循环次数为( b )。 do{ i--; cout<=0 ); (c) int a=5;while(a){ a--;}; (d) int i=3;for(;i;i--); 1.以下正确的函数原型为( d )。 (a) f( int x; int y ); (b) void f( x, y ); (c) void f( int x, y ); (d) void f( int, int ); 2.有函数原型 void fun1( int ); 下面选项,不正确的调用是( c )。 (a) double x = 2.17 ; fun1( x ); (b) int a = 15 ; fun1( a*3.14 ) ; (c) int b = 100 ; fun1( & b ); (d) fun1( 256 ); 3.有函数原型 void fun2( int * ); 下面选项,正确的调用是( c )。 (a) double x = 2.17 ; fun2( &x ); (b) int a = 15 ; fun2( a*3.14 ); (c) int b = 100 ; fun2( &b ); (d) fun2( 256 ); 4.有函数原型 void fun3( int & ); 下面选项,正确的调用是( c )。 (a) int x = 2.17; fun3( &x ); (b) int a = 15; fun3( a*3.14 ); (c) int b = 100; fun3( b ); (d) fun3( 256 ) ; 5.有声明 int fun4( int ); int (*pf)(int) = fun4; 下面选项,正确的调用是( c )。 (a) int a = 15 ;int n = fun4( &a ); (b) int a = 15; cout<中,若定义一个函数的返回类型为void,以下叙述正确的是( a,c )。 (a) 用语句调用函数 (b) 用表达式调用函数 (c) 没有返回值 (d) 通过return语句可以返回指定值 7.函数参数的默认值不允许为( c )。 (a) 全局常量 (b) 全局变量 (c) 局部变量 (d) 函数调用 8.使用重载函数编程序的目的是( a )。 (a) 使用相同的函数名调用功能相似的函数 (b) 共享程序代码 (c) 提高程序的运行速度 (d) 节省存贮空间 9.下列的描述( b )是错误的。 (a) 使用全局变量可以从被调用函数获取多个操作结果 (b) 局部变量可以初始化,若不初始化,则系统默认它的值为0 (c) 当函数调用完后,静态局部变量的值不会消失 (d) 全局变量若不初始化,则系统默认它的值为0 10.下列选项,( c ,d )的具有文件作用域。 (a) 语句标号 (b) 局部变量 (c) 全局变量 (d) 静态全局变量 1.以下对一维数组 a 的正确定义是( c )。 (a) int n = 5, a[n]; (b) int a(5); (c) const int n = 5; int a[n]; (d) int n; cin>>n; int a[n]; 2.下列数组定义语句,不合法的是( a )。 (a) int a[3] = { 0, 1, 2, 3 }; (b) int a[] = { 0, 1, 2 }; (c) int a[3] = { 0, 1, 2 }; (d) int a[3] = { 0 }; 3.已知 int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a ;则不能表示数组 a 元素的式子是( c )。 (a) *a (b) *p (c) a (d) a[ p-a ] 4.已知 int a[] = { 0, 2, 4, 6, 8, 10 }, *p = a ; 值不等于0的表达式是( b,d )。 (a) *(p++) (b) *(++p) (c) *(p-- ) (d) *(--p) 5.以下不能对二维数组a进行正确初始化的语句是( c )。 (a) int a[2][3] = { 0 }; (b) int a[][3] = { { 0, 1 }, { 0 } }; (c) int a[2][3] = { { 0, 1 }, { 2, 3 }, { 4, 5 } }; (d) int a[][3] = { 0, 1, 2, 3, 4, 5 }; 6.已知int a[][3] = { { 0, 1 }, { 2, 3, 4 }, { 5, 6 }, { 7 } } ;则 a[2][1]的值是( c )。 (a) 0 (b) 2 (c) 6 (d) 7 7.已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ; 则不能表示数组元素a[2][1]的地址是( a,b )。 (a) &[2][1] (b) *(a[2]+1) (c) a[2]+1 (d) *(a+2)+1 8.已知char *a[]={ "fortran", " basic", "pascal", "java", "c++" ; 则 cout<中全部元素的值 (d) 数组元素的个数 10.在下列选项,( b, d )是错误的。 (a) gets和puts函数可以输入输出包含空格的字符 (b) cin不能输入包含空格的字符 (c) cout不能输出包含空格的字符 (d) 使用赋值运算符可以对字符数组整体赋值 11.下列描述,错误的是( c )。 (a) 输出字符指针就是输出字符 (b) 输出字符指针的间接引用就是输出单个字符 (c) 具有相同字符的两个字符常量相等 (d) 两个数组名的比较是地址的比较 12.判断字符s1和s2是否相等的表达式为( d )。 (a) s1=s2 (b) s1==s2 (c) strcpy(s1,s2)==0 (d) strcmp(s1,s2)==0 13.判断字符s1是否大于字符s2的表达式为( c )。 (a) s1>s2 (b) strcmp(s1,s2)==0 (c) strcmp(s1,s2)>0 (d) strcmp(s2,s1)>0 5.若有以下声明和定义,则下列错误的引用是( d )。 struct worker { int no ; char name[ 20 ] ; } w, *p = &w ; (a) w.no (b) p->no (c) (*p).no (d) *p.no 6.若有以下声明和定义,则下列引用非法的是( d )。 struct data { int n; float score; data *q ; }; data a[3] = {1001,87,&a[1],1002,75,&a[2],1003,90,&a[0]}; data *p = a; (a) p->n++ (b) (*p).n++ (c) ++p->n (d) *p->n 7.关于类和对象不正确的说法是( c )。 (a) 类是一种类型,它封装了数据和操作 (b) 对象是类的实例 (c) 一个类的对象只有一个 (d) 一个对象必属于某个类 8.在类定义的外部,可以被访问的成员有( c )。 (a) 所有类成员 (b) private或protected的类成员 (c) public的类成员 (d) public或private的类成员 9.关于this指针的说法错误的是( a,d )。 (a) this指针必须显式说明 (b) 当创建一个对象后,this指针就指向该对象 (c) 成员函数拥有this指针 (d) 静态成员函数拥有this指针 10.声明一个类的对象时,系统自动调用( b,d )函数;撤消对象时,系统自动调用( c )函数。 (a) 成员函数 (b) 构造函数 (c) 析构函数 (d) 复制构造函数 11.下面对构造函数的不正确描述是( b )。 (a) 系统可以提供默认的构造函数 (b) 构造函数可以有参数,所以也可以有返回值 (c) 构造函数可以重载 (d) 构造函数可以设置默认参数 12.下面对析构函数的正确描述是( a,c )。 (a) 系统可以提供默认的析构函数 (b) 析构函数必须由用户定义 (c) 析构函数没有参数 (d) 析构函数可以设置默认参数 13.对静态成员的不正确描述是( c,d )。 (a) 静态成员不属于对象,是类的共享成员 (b) 静态数据成员要在类外定义和初始化 (c) 调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针 (d) 只有静态成员函数可以操作静态数据成员 14.下面选项,不是类的成员函数为( c )。 (a) 构造函数 (b) 析构函数 (c) 友元函数 (d) 复制构造函数 15.下面对友员的错误描述是( d )。 (a) 关键字friend用于声明友员 (b) 一个类的成员函数可以是另一个类的友员 (c) 友员函数访问对象的成员不受访问特性影响 (d) 友员函数通过this指针访问对象成员 1.在下列运算符,能重载的是( a,c,d )。 (a) ! (b) sizeof (c) new (d) delete 2. 在下列运算符,不能重载的是( c )。 (a) <= (b) >> (c) && (d) &= 3.下列关于运算符重载的描述,( d )是正确的。 (a) 可以改变参与运算的操作数个数 (b) 可以改变运算符原来的优先级 (c) 可以改变运算符原来的结合性 (d) 不能改变原运算符的语义 4.下列函数,能重载运算符的函数是( b,c )。 (a) 成员函数 (b) 构造函数 (c) 析构函数 (d) 友员函数 5.不能用友员函数重载的是( a )。 (a) = (b) == (c) += (d) != 6.下面描述,错误的是( b )。 (a) 只有系统预先定义的运算符才可能被重载 (b) 使用类型转换函数不能把一个类转换为另一个类 (c) 使用类型转换函数可以把类转换为基本类型 (d) 类型转换函数只能定义为一个类的成员函数,不能定义为类的友员函数 1.在c++,类与类之间的继承关系具有( c )。 (a) 自反性 (b) 对称性 (c) 传递性 (d) 反对称性 2.下列关于类的继承描述,( a,b )是错误的。 (a) 派生类可以访问基类的所有数据成员,调用基类的所有成员函数 (b) 派生类也是基类,所以基类具有派生类的全部属性和方法 (c) 继承描述类的层次关系,派生类可以具有与基类相同的属性和方法 (d) 一个基类可以有多个派生类,一个派生类可以有多个基类 3.当一个派生类公有继承一个基类时,基类的所有公有成员成为派生类的( a )。 (a) public 成员 (b)private成员 (c) protected成员 (d)友员 4.当一个派生类私有继承一个基类时,基类的所有公有成员和保护成员成为派生类的( b )。 (a) public 成员 (b)private成员 (c) protected成员 (d)友员 5.当一个派生类保护继承一个基类时,基类的所有公有成员和保护成员成为派生类的( c )。 (a) public 成员 (b)private成员 (c) protected成员 (d)友员 6.不论派生类以何种方式继承基类,都不能使用基类的( b )。 (a) public 成员 (b)private成员 (c) protected成员 (d)public 成员和protected成员 7.下面描述,错误的是( b, c )。 (a) 在基类定义的public成员在公有继承的派生类可见,也能在类外被访问 (b) 在基类定义的public和protected成员在私有继承的派生类可见,在类外可以被访问 (c) 在基类定义的public和protected成员在保护继承的派生类不可见 (d) 在派生类不可见的成员要变成可访问的需进行访问声明 8.在c++,不能被派生类继承的函数是( b,c )。 (a) 成员函数 (b)构造函数 (c) 析构函数 (d)静态成员函数 9.在创建派生类对象时,构造函数的执行顺序是( d )。 (a) 对象成员构造函数、基类构造函数、派生类本身的构造函数 (b) 派生类本身的构造函数、基类构造函数、对象成员构造函数 (c) 基类构造函数、派生类本身的构造函数、对象成员构造函数 (d) 基类构造函数、对象成员构造函数、派生类本身的构造函数 10.当不同的类具有相同的间接基类时,有特点( d )。 (a) 各派生类对象将按继承路线产生自己的基类版本 (b) 派生类对象无法产生自己的基类版本 (c) 为了建立惟一的间接基类版本,应该必须改变类格 (d) 为了建立惟一的间接基类版本,应该声明虚继承 1.在C++,要实现动态联编,必须使用( d )调用虚函数。 (a) 类名 (b) 派生类指针 (c) 对象名 (d) 基类指针 2.下列函数,可以作为虚函数的是( c,d )。 (a) 普通函数 (b) 构造函数 (c) 成员函数 (d) 析构函数 3.在派生类,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( b )。 (a) 不同 (b) 相同 (c) 相容 (d) 部分相同 4.下面函数原型声明,( b )声明了fun为纯虚函数。 (a) void fun()=0; (b)virtual void fun()=0; (c) virtual void fun(); (d)virtual void fun(){ }; 5.若一个类含有纯虚函数,则该类称为( d )。 (a) 基类 (b) 纯基类 (c) 派生类 (d) 抽象类 6.假设 Aclass为抽象类,下列声明( a,c,d )是错误的。 (a) Aclass fun( int ) ; (b)Aclass * p ; (c) int fun( Aclass ) ; (d)Aclass Obj ; 7.下面描述,正确的是( b,d )。 (a) 虚函数是没有实现的函数 (b) 纯虚函数的实现在派生类定义 (c) 抽象类是只有纯虚函数的类 (d) 抽象类指针可以指向不同的派生类 使用虚函数编写程序求球体和圆柱体的体积及表面积。由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类circle作为基类。在circle类定义一个数据成员radius和两个虚函数area()和volume()。由circle类派生sphere类和column类。在派生类对虚函数area()和volume()重新定义,分别求球体和圆柱体的体积及表面积。 #include const double PI=3.14159265;class circle{ public: circle(double r) { radius = r; } virtual double area() { return 0.0; } virtual double volume() { return 0.0; } protected: double radius;};class sphere:public circle{ public: sphere( double r ):circle( r ){ } double area() { return 4.0 * PI * radius * radius; } double volume() { return 4.0 * PI * radius * radius * radius / 3.0; }};class column:public circle{ public: column( double r,double h ):circle( r ) { height = h; } double area() { return 2.0 * PI * radius * ( height + radius ); } double volume() { return PI * radius * radius * height; } private: double height;};void main(){ circle *p; sphere sobj(2); p = &sobj; cout << "球体:" << endl; cout << "体积 = " << p->volume() << endl; cout << "表面积 = " << p->area() << endl; column cobj( 3,5 ); p = &cobj; cout << "圆柱体:" << endl; cout << "体积 = " << p->volume() << endl; cout << "表面积 = " << p->area() << endl;} 2、定义一个Book(图书)类,在该类定义包括 数据成员: bookname(书名)、price(价格)和number(存书数量); 成员函数: display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restore()将存书数量加1,并显示当前存书数量。 在main函数,要求创建某一种图书对象,并对该图书进行简单的显示、借阅和归还管理。 #include #include int main(){class Book{public:long number;float price;char *bookname;void display(){printf("The name of this book is:%s\n",bookname);printf("The price of this book is:%fdolars\n",price);printf("The number of such book is:%d\n",number);}void restore(){number++;}void borrow(){number--;}};Book b;b.bookname="Harry Potter";b.price=18.00;b.number=100;b.display();b.borrow();b.display();b.restore();b.display();system("pause");return 0;} 1. #include void main() { int a,b,c,d,x; a = c = 0; b = 1; d = 20; if( a ) d = d-10; else if( !b ) if( !c ) x = 15; else x = 25; cout << d << endl; } 2. #include void main() { int a = 0, b = 1; switch( a ) { case 0: switch( b ) { case 0 : cout << "a=" << a << " b=" << b << endl; break; case 1 : cout << "a=" << a << " b=" << b << endl; break; } case 1: a++; b++; cout << "a=" << a << " b=" << b << endl; } } 3. #include void main() { int i = 1; while( i<=10 ) if( ++i % 3 != 1 ) continue; else cout << i << endl; } 4、#include < iostream.h > class T { public : T( int x, int y ) { a = x ; b = y ; cout << "调用构造函数1." << endl ; cout << a << '\t' << b << endl ; } T( T &d ) { cout << "调用构造函数2." << endl ; cout << d.a << '\t' << d.b << endl ; } ~T() { cout << "调用析构函数."< struct data { int n ; float score ; } ; void main() { data a[3] = { 1001,87,1002,72,1003,90 } , *p = a ; cout << (p++)->n << endl ; cout << (p++)->n << endl ; cout << p->n++ << endl ; cout << (*p).n++ << endl ; } 6. #include < iostream.h > struct node { char * s ; node * q ; } ; void main() { node a[ ] = { { "Mary", a+1 }, { "Jack", a+2 }, { "Jim", a } } ; node *p = a ; cout << p->s << endl ; cout << p->q->s << endl ; cout << p->q->q->s << endl ; cout << p->q->q->q->s << endl ; }
namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档的例子:   nmap -v scanme.   这个选项扫描主机scanme 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档的例子:   nmap -v scanme.   这个选项扫描主机scanme 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)namp 2011-06-25 02:13:43| 分类: Linux | 标签:namp |字号大小 订阅 . 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):   nmap -sP 192.168.1.0/24   仅列出指定网络上的每台主机,不发送任何报文到目标主机:   nmap -sL 192.168.1.0/24   探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):   nmap -PS 192.168.1.234 nmap -PS 127.0.0.1 -p 100-700   使用UDP ping探测主机:   nmap -PU 192.168.1.0/24   使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:   nmap -sS 192.168.1.0/24   当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:   nmap -sT 192.168.1.0/24   UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:   nmap -sU 192.168.1.0/24   确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):   nmap -sO 192.168.1.19   探测目标主机的操作系统:   nmap -O 192.168.1.19   nmap -A 192.168.1.19   另外,nmap官方文档的例子:   nmap -v scanme.   这个选项扫描主机scanme 所有的保留TCP端口。选项-v启用细节模式。   nmap -sS -O scanme./24   进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。   nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127   进行主机列举和TCP扫描,对象为B类188.116网段255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。   nmap -v -iR 100000 -P0 -p 80   随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。   nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20   扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。   host -l | cut -d -f 4 | nmap -v -iL -   进行DNS区域传输,以发现的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。   其他选项:   -p (只扫描指定的端口)   单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。   -F (快速 (有限的端口) 扫描)
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。 Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。 其基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志, 供进一步分析操作。 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24 仅列出指定网络上的每台主机,不发送任何报文到目标主机: nmap -sL 192.168.1.0/24 探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80): nmap -PS 192.168.1.234 使用UDP ping探测主机: nmap -PU 192.168.1.0/24 使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快: nmap -sS 192.168.1.0/24 当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描: nmap -sT 192.168.1.0/24 UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口: nmap -sU 192.168.1.0/24 确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等): nmap -sO 192.168.1.19 探测目标主机的操作系统: nmap -O 192.168.1.19 nmap -A 192.168.1.19 另外,nmap官方文档的例子: nmap -v scanme. 这个选项扫描主机scanme 所有的保留TCP端口。选项-v启用细节模式。 nmap -sS -O scanme./24 进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。 nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 进行主机列举和TCP扫描,对象为B类188.116网段255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。 nmap -v -iR 100000 -P0 -p 80 随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。 nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。 host -l | cut -d -f 4 | nmap -v -iL - 进行DNS区域传输,以发现的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。 其他选项: -p (只扫描指定的端口) 单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。 -F (快速 (有限的端口) 扫描)
******************************************************************************* * * * 摘 要: 本程序主要是通过调用MF1_AnLock2009.dll动态连接库函数,进行读写卡操作 * * * * 创建日期: 2006年07月19日 * 修改日期: 2009年02月17日 * * ******************************************************************************** //********************************************************** //************************************* //******************* //MF1卡通用接口 //******************* //************************************* //********************************************************** //****************************** * 返回值说明 : 整型(Integer) * -1 ---- 串口打开失败 * -2 ---- 无效卡片 * -3 ---- 软件未注册 * 0 ---- 写卡失败 * 1 ---- 成功 //****************************** function UGA_ModiPSW ( CommID :Integer; MF_Area :Byte; OldPSW, NewPSW :PChar ) : Integer; 功能: 修改分区密码 参数: CommID 端口号(1-4) MF_Area MF1区号(0-15) OldPSW 旧密码(最大长度6字节) NewPSW 新密码(最大长度6字节) function UGA_ReadCard( CommID :Integer; MF_Area :Byte; CurrPSW, CardCode, CardInfo :PChar ) : Integer; 功能: 读卡片信息 参数: CommID 端口号(1-4) MF_Area MF1区号(0-15) CurrPSW 当前密码(最大长度6字节) CardCode 读出的卡号(固定8字节) CardInfo 读出的卡片信息(16字节 * 3扇区 = 48字节) function UGA_WriteCard( CommID :Integer; MF_Area :Byte; CurrPSW, CardInfo :PChar ) :Integer; 功能: 读卡片信息 参数: CommID 端口号(1-4) MF_Area MF1区号(0-15) CurrPSW 当前密码(最大长度6字节) CardInfo 写入的卡片信息(16字节 * 3扇区 = 48字节) //********************************************************** //************************************* //******************* //MF1卡门锁专用接口 //******************* //************************************* //********************************************************** ************************************************************** * 函数功能 : 读取卡片信息 * 参数说明 : CommID(整型) ---- 端口编号 * CardType(整型) ---- 卡片类型(0是T5557卡,1是MF1卡) * MF1_Area(整型) ---- MF1卡片分区号(取值范围2-15) * 返回值说明 : 通用字符型(PChar) * (1)未成功读取时 * -1 ---- 串口打开失败 * -2 ---- 卡片无效 * 0 ---- 读数据失败 * 1 ---- 分区设置成功但不能正常读取数据(只在MF1卡时出现,可能由于该分区未初始化) * (2)成功读取时 * 卡号,卡类型 ---- 读取非宾客卡时的返回值,以英文逗号分隔 * 卡号,卡类型,楼栋号,楼层号,房间号,套间号,开始时间,结束时间,开特权门标记 ---- 读取宾客卡时的返回值,以英文逗号分隔 * 卡类型说明: * 0 ---- 空卡 , 1 ---- 新宾客卡 , 2 ---- 复制宾客卡 , 3 ---- 后备宾客卡 , * 4 ---- 宾客终止卡 , 5 ---- 反宾客终止卡 , 6 ---- 挂失卡 , 7 ---- 取消挂失卡 , * 8 ---- 楼栋卡 , 9 ---- 楼层卡 , 10 ---- 授权卡 , 11 ---- 锁体设置卡 , * 12 ---- 特权设置卡 , 13 ---- 房间设置卡 , 14 ---- 总卡 , 15 ---- 应急卡 , * 16 ---- 时钟卡 , 17 ---- 锁体信息卡 , 18 ---- 房间清除卡 , 19 ---- 初始化数量卡 , * 20 ---- 开锁数据卡 * 开特权门标记说明: * 1 ---- 有特权 , 0 ---- 无特权 ************************ Delphi 调用 ************************* * function ReadCardInfo(CommID : Integer; CardType : Integer; MF1_Area : Byte ) : PChar; external 'MF1_AnLock2009.dll'; stdcall; ************************************************************** * ************************* VB 调用 **************************** * Private Declare Function ReadCardInfo Lib "MF1_AnLock2009.dll" _ * (ByVal CommID As Long, ByVal CardType As Long, Optional ByVal MF1_Area As Long ) As String * ************************************************************** * ************************* PB 调用 **************************** * Function String ReadCardInfo( long CommID , long CardType , long MF1_Area ) Library "MF1_AnLock2009.dll"; ************************************************************** 例1: 假设端口号为3,当卡片为T5557卡时以ReadCardInfo(3,0,15)调用 当卡片为MF1卡,分区号为2时以ReadCardInfo(3,1,2)调用 例2: 当串口打开失败时,函数返回值: -1 例3: 当读取卡号为234D833A78的总卡时,函数返回值: 234D833A78,14 例4: 当读取卡号为234D833A78、楼栋号为2、楼层号为10、房间号为10101、套间号为3、开始时间为2007-10-10 12:20:23、 结束时间为2007-10-11 12:00:08的可开特权门的新宾客卡时, 函数返回值:234D833A78,1,2,10,10101,3,2007-10-10 12:20:00,2007-10-11 12:00:00,1 ************************************************************** ************************************************************** * 函数功能 : 写宾客卡信息 * 参数说明 : * CommID(整型) ---- 端口编号 * CardType(整型) ---- 卡片类型(0是T5557卡,1是MF1卡) * OldKeyEnd(整型) ---- 制新宾客卡设置1,BAKKey参数设置0;制复制宾客卡设置0,BAKKey参数设置0; * BAKKey(整型) ---- 制后备宾客卡设置1,OldKeyEnd参数设置为0 * TSRight(整型) ---- 可开特权门设置1,不允许开特权门设置0 * FloorCode(长整型) ---- 楼栋号(1-255) * FloorLayCode(长整型) ---- 楼层号(1-255) * RoomCode(长整型) ---- 房间号(1-65535) * iSubRoomCode(长整型) ---- 套间号(1-255),当没有套间房时请设置为255 * StartDateTime(通用字符型) ---- 宾客卡起始时间(起始日期时间),20字符长度,格式'yyyy-mm-dd hh:nn:ss' * EndDateTime(通用字符型) ---- 宾客卡有效时间(截止日期时间),20字符长度,格式'yyyy-mm-dd hh:nn:ss' * MF1_Area(整型) ---- MF1卡片分区号(取值范围2-15) * 返回值说明 : 整型(Integer) * -1 ---- 串口打开失败 * -2 ---- 无效卡片 * -3 ---- 软件未注册 * 0 ---- 写卡失败 * 1 ---- 成功 ********************** Delphi 调用 *************************** * function WriteGuestCard( CommID : Integer; CardType : Integer; * OldKeyEnd, BAKKey, TSRight :Integer; * FloorCode, FloorLayCode, RoomCode, iSubRoomCode :Cardinal; * StartDateTime :PChar; EndDateTime :PChar; MF1_Area :Byte ) :Integer; * external 'MF1_AnLock2009.dll'; stdcall; ************************************************************** * ************************* VB 调用 **************************** * Private Declare Function WriteGuestCard Lib "MF1_AnLock2009.dll" _ * (ByVal CommID As Long, ByVal CardType As Long, _ * ByVal OldKeyEnd As Long, ByVal BAKKey As Long, ByVal TSRight As Long, _ * ByVal FloorCode As Long, ByVal FloorLayCode As Long, ByVal RoomCode As Long, ByVal iSubRoomCode As Long, _ * ByVal StartDateTime As String, ByVal EndDateTime As String, Optional ByVal MF1_Area As Long ) As Long ************************************************************** * ************************* PB 调用 **************************** * Function long WriteGuestCard( long CommID, long CardType, * long OldKeyEnd, long BAKKey, long TSRight, * ulong FloorCode, ulong FloorLayCode, ulong RoomCode, ulong iSubRoomCode, * REF string StartDateTime, REF string EndDateTime, long MF1_Area) Library "MF1_AnLock2009.dll"; ************************************************************** 以下例子都以端口编号设置3、楼栋号设置2、楼层号设置10、房间号设置10101、套间号设置3、起始时间设置2007-10-10 12:00:00、有效时间设置2007-10-11 12:00:00为例 在MF1卡的调用假设分区号为2 例1: 写可开特权门的新宾客卡 T5557调用方式: WriteGuestCard(3,0,1,0,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,15) MF1调用方式 : WriteGuestCard(3,1,1,0,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,2) 例2: 写不可开特权门的复制宾客卡 T5557调用方式: WriteGuestCard(3,0,0,0,0,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,15) MF1调用方式 : WriteGuestCard(3,1,0,0,0,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,2) 例3: 写可开特权门的后备宾客卡 T5557调用方式: WriteGuestCard(3,0,0,1,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,15) MF1调用方式 : WriteGuestCard(3,1,0,1,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,2) ************************************************************** * 函数功能 : 回收卡片 * 参数说明 : CommID(整型) ---- 端口编号 * CardType(整型) ---- 卡片类型(0是T5557卡,1是MF1卡) * MF1_Area(整型) ---- MF1卡片分区号(取值范围2-15) * 返回值说明 : 整型(Integer) * -1 ---- 串口打开失败 * 0 ---- 写卡失败 * 1 ---- 成功 ********************** Delphi 调用 *************************** * function ClearCardInfo ( CommID : Integer; CardType : Integer; MF1_Area :Byte ) : Integer; * external 'MF1_AnLock2009.dll'; stdcall; ************************************************************** * ************************* VB 调用 **************************** * Private Declare Function ClearCardInfo Lib "MF1_AnLock2009.dll" _ * (ByVal CommID As Long, ByVal CardType As Long, Optional ByVal MF1_Area As Long ) As Long ************************************************************** * ************************* PB 调用 **************************** * Function long ClearCardInfo ( long CommID, long CardType, long MF1_Area) Library "MF1_AnLock2009.dll"; ************************************************************** 例1: 假设端口号为3,当卡片为T5557卡时以ClearCardInfo(3,0,15)调用 当卡片为MF1卡,分区号为2时以ClearCardInfo(3,1,2)调用

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧