这是在 20CN网络安全小组第一代论坛 的论坛 编程破解 中的主题 一些杂项讨论


要查看这个主题,请使用这个 URL:
http://www.20cn.net/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic;f=5;t=000063

病毒 发表于 :
 
DB 于 2001-04-08 17:56:36 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(289bytes):

我是在后台用存储过程动态建立了一个表,已经写好了,这时需要写另
一个存储过程来添加数据,在这个存储过程中,我需要先判断
表是否建立成功,我试过sp_help和sp_tables这两个系统提供的
存储过程,但是达不到我想要的效果,问题在于我用什么样的SQL语句才可以
列出数据库中已建立好的表,怎样来判断,谢谢


病毒 于 2001-04-08 20:32:44 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(383bytes):

所建立的新表都会记录在系统表sysobjects里,type为U的便是你自建立的表
这样就可以用SELECT列出当前库中所有的表,要判断的一个表是否存在的话,
只需将name字段做比较即可。写了个列子给你,如下

IF EXISTS (SELECT name FROM sysobjects WHERE type='U' AND name='tbname')

BEGIN
PRINT '表以存在'
.....
.....
END

ELSE
BEGIN
PRINT '表不存在'
.....
.....
END


游离 于 2001-04-14 19:49:03 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(150bytes):

我在写SOCKET程序时bind某个端口,程序运行正常,
可当此进程运行时,再次调用这个程序便会提示bind端口错误,
我又不想改变bind端口。请教各位高手如何解决。


病毒 于 2001-04-15 00:17:43 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(221bytes):

在bind函数前用setsockopt设置SO_REUSEADDR选项。

int flag=1,len=sizeof(int);
...
setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(LPSTR)&flag,len);
...

SO_REUSEADDR在有些情况下非常必要,比如你这种情况,还有UDP多播等


回复:这样做可以bind系统端口吗? [作者:Mustang 大小:0bytes]


可以,但不能与其它程序共用同一个连接 [作者:zzcat 大小:0bytes]


病毒 于 2001-04-20 15:36:17 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(142bytes):

如很多情况下SERVER异常退出,端口处于TIME_WAIT状态,此时任何套接子都不能
与那个端口帮定,但使用了SO_REUSEADDR便可帮定处
于TIME_WAIT状态的端口。


主题:如何用编程的方法得知网络上其他电脑的mac地址

Sos_21 于 2001-04-21 20:51:12 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(88bytes):

不是用nbtstat -a ip,那样虽说可以对输出转向后的文件进行分析得到,可是…… 太慢了!


主题:用netBIOS获取

病毒 于 2001-04-22 01:43:24 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(291bytes):

简单说下过程,首先填充NCB结构,其中ncb_callname是指远程地址,
ncb_buffer便是将要返回的MAC地址,你需要自定义一个结构,将系
统提供的两个结构ADAPTER_STATUS和NAME_BUFFER包含进去,
NAME_BUFFER变量应为NameBuf[30],再将地址传给ncb_buffer,
然后再调用Netbios(&ncb)便返回了远程网卡MAC地址。


主题:回复:用netBIOS获取MAC的具体代码

Mustang 于 2001-04-22 09:46:46 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(1411bytes):

Win32API里有直接调NetBIOS的API:Netbios() 头文件是nb30.h。
下面是一个获取网卡物理ID的函数 例子:
BOOL GetNetworkAdapterAddress(CString &szName)
{
AfxGetApp()->DoWaitCursor(1);

BOOL bRet = FALSE;
NCB ncb;
PUCHAR pData;
ZeroMemory(&ncb, sizeof(ncb));
pData = (PUCHAR)malloc(sizeof(ADAPTER_STATUS) + 16 * sizeof(NAME_BUFFER));

CopyNetbiosName((char *)&ncb.ncb_callname, szName);
ncb.ncb_command = NCBASTAT;
ncb.ncb_buffer = (PUCHAR)pData;
ncb.ncb_lana_num = 0;
ncb.ncb_length = sizeof(ADAPTER_STATUS) + 16 * sizeof(NAME_BUFFER);
Netbios(&ncb);

CString szAddress;
if(ncb.ncb_retcode == NRC_GOODRET)
{
ADAPTER_STATUS *pStatus = (ADAPTER_STATUS *)pData;
UCHAR *pAddress = pStatus->adapter_address;
szAddress.Format("%02X%02X%02X%02X%02X%02X",
pAddress[0], pAddress[1], pAddress[2],
pAddress[3], pAddress[4], pAddress[5]);

bRet = TRUE;
}
else
szAddress = "Wrong Name!";

m_btnAddress.SetWindowText(szAddress);
AfxGetApp()->DoWaitCursor(0);
return bRet;
}

 






Powered by Infopop Corporation
UBB.classic™ 6.5.0
NetDemon修改版 1.5.0, 20CN网络安全小组 版权所有。