ros winbox api 应用
winbox api VB.net 类库:cls_Mikrotik.vb
代码:
Dim mk = New Mikrotik("192.168.0.1")
Dim strUsername As String, strGrid() As String
If Not mk.Login("admin", "Mikrotik_hhsoft") Then
mk.Close()
Return
End If
mk.Send("/ppp/active/print", True)
For Each row In mk.Read()
If InStr(row, "!done") = 0 Then
strGrid = Split(row, "=")
Console.WriteLine(strGrid(4) & vbTab & vbTab & strGrid(12))
End If
Next
返回的数据包:
!re=.id=*139=name=malidan=service=pppoe=caller-id=00:11:43:57:B9:0F=address=172.16.0.108=uptime=00:22:14=encoding==session-id=2167406760=limit-bytes-in=0=limit-bytes-out=0=radius=true
!re=.id=*13A=name=zhaoliang=service=pppoe=caller-id=00:E0:4D:A5:B2:5E=address=172.16.0.107=uptime=00:13:41=encoding==session-id=2167406761=limit-bytes-in=0=limit-bytes-out=0=radius=true
!done
ROS 的SDK 在哪里有下载
没有见过,ros是商业程序怎么会有sdk呢?
其实也不能算SDK,就是几个API调用的程序代码示例。通过程序对路由器进行查询、设置等操作的。
http://wiki.mikrotik.com/wiki/Manual:API
这里,页面最底部。
小狼哥,请问用ROS的API踢人的命令是什么?
我用
/ppp/active/remove
=name=xxxx
这样踢不掉,提示参数有误,多谢 !!!
应该是包格式不正确,你用什么语言,把源码贴上来看看。
sorry,我用我的代码试了一下,也不行,但是我用=.id=参数可以。
等我继续研究下。
你可以参考下这个帖子:http://forum.mikrotik.com/viewtopic.php?f=9&t=38834
贴上我的代码
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mk = New Mikrotik(“192.168.0.1”)
Dim strGrid() As String, strCLI() As String
Dim iCmds As Integer
If Not mk.Login(“admin”, “×××”) Then
mk.Close()
Return
End If
strCLI = Split(txtCLI.Text, vbCrLf)
For iCmds = 0 To UBound(strCLI) – 1
mk.Send(strCLI(iCmds))
Next iCmds
mk.Send(strCLI(UBound(strCLI)), True)
txtOutput.Text = “”
For Each Row In mk.Read()
strGrid = Split(Row, “=”)
txtOutput.Text = txtOutput.Text & vbCrLf & Row
mk.Close()
Next
End Sub
谢谢小狼哥!
您说:
暂时通过=.id参数踢人:
/ppp/active/remove
=.id=*7B
这个ID,怎么获取呢? 我数据库里都是他们的name,ROS里的ID 怎么获取啊?
而且你写的
=.id=*7B
这个 *7B 是什么意思?为什么不是个数字呢? 这个数怎么得到呢? 请指教,谢谢!
谢谢小狼哥!!!已经搞定!!!万分感谢!!!
呵呵,不客气,有问题一起研究。