如何判断一个ip是否在一段ip之间?
比如:
220.123.21.33 是否在 220.122.1.2 ~ 221.1.122.21之间为true;
比如:
220.123.21.33 是否在 220.122.1.2 ~ 221.1.122.21之间为true;
解决方案 »
- Delphi 2010 indy10.5.5 socket error #10048 address already in use
- 如何启动程序 不显示 主界面 ? Formshow 里不能 visible:=Flase
- 河北的XDJM进来聚聚!
- 第三者插足,热恋中.
- 求具有像word一样编辑功能的控件
- 浮动面板怎么做?有没有代码?
- 請教一條SQl語句遍歷樹???? 不好意思我快沒分了. 謝謝
- 请问如何设置cxGrid字段居中显示
- 怎样在delphi6程序中自动生成xml文件,需要什么控件,请给个具体例子,一定送分?
- 急,一个打印的问题
- 调用远程Dll中的AppSvr,提示没有注册类,在DCOMCNFG里又看得到,DCOM连接中下拉里有它?急急急
- 如何获得当前窗体的名称?
用其他工具可以吗?
用ipscan.exe可以帮你吗?
使用DWORD,就不会出现负值了
就我所知道, 應該為一正整數才對啊! 負數應該是你的數據有問題吧!
别使用integer,他有符号的。
使用DWORD,就不会出现负值了
Inet_Addr(pchar('220.123.21.33'));这样的函数如何让它的值为dword呢?
showmessage(inttostr(DWord(Inet_Addr(pchar('211.162.233.233')))));
showmessage(inttostr(DWord(Inet_Addr(pchar('211.162.002.131')))));
showmessage(inttostr(DWord(Inet_Addr(pchar('211.162.3.120')))));
看看哪个大???
Inet_Addr 得到的數是低位在前的, 所以, 才會出現你說的問題,
如
showmessage(inttohex(Inet_Addr(pchar('211.162.3.120')),2)));
begin
result:= (dwX and $ff000000) shr 24
+(dwX and $00ff0000) shr 8
+(dwX and $0000ff00) shl 8
+(dwX and $000000ff) shl 24;
end;
var
dwBeginIP, dwEndIP, dwIP; dwBeginIP:= SwapDWORD(Inet_Addr(pchar('211.162.3.1')));
dwEndIP:= SwapDWORD(Inet_Addr(pchar('211.162.3.255')));
dwIP:= SwapDWORD(Inet_Addr(pchar('211.162.003.123')));if (dwIP >= dwEndIP) and (dwIP <= dwBegin) then
.....这样该差不多了