07-02-18, 04:55 PM
(آخر تعديل لهذه المشاركة : 07-02-18, 04:59 PM {2} بواسطة MOSTAFA.KAMEL.)
(07-02-18, 07:36 AM)طالب برمجة كتب : الكود بديل عن طريقة الاستخراج عن طريق Replace
وهو يستخرج بيانات الحقول من النص
!re=.id=*5600000A=server=hotspot1=user=12=address=10.0.0.86=mac-address=F8:3F:51:7F:C8:07=login-by=cookie=uptime=00:28:17=keepalive-timeout=00:02:00=radius=false
وبالتالي تستيطيع التعامل مع البيانات باسماء متغيراتها بشكل واضح كما تريد بدلا من طريقة (info(1 و(info(2 ...
تمام بس برضو فى مشكلة عشان هو بيعمل اتصال للسيرفر عن طريق تسجيل دخول من الكود ده
كود :
Dim IPAddress As System.Net.IPAddress = System.Net.IPAddress.Parse(ip.Text)
Dim mk = New Mikrotik(IPAddress)
If Not mk.Login(user.Text, pass.Text) Then
Console.WriteLine("Cant log in")
mk.Close()
Console.ReadLine()
Return
End Ifبعد ما يعمل اتصال بيقوم بارسال او اتصال الرابط يجيب الى شغلين الان الفكرة جميلة الى حضرتك عملتها بس انا عايز بعد ما يتم الاتصال بالسيرفر يقوم بالاتصال بالرابط ويجلب البيانات زاى ما خضرتك عملت كدة
كود :
mk.Send("/ip/hotspot/active/print", False)(07-02-18, 12:53 PM)محمود صالح كتب : تمام كده طالب البرمجة سهل الدنيا
طبعا لان المثال السابق ذكره في الموضوع اخر مش بيشتغل عندي
انا عملتلك مثال طبقه عندك وهو سهل وبسيط هتفهمه
صورة
الكود كامل
PHP كود :
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim STR As New List(Of String)
STR.Add("!re=.id=*D00000A=server=hotspot1=user=00=address=10.0.0.13=mac-address=00:E0:4C:95:C2:77=login-by=cookie=uptime=08:22:07==00:02:00=radius=false")
STR.Add("!re=.id=*5600000A=server=hotspot1=user=12=address=10.0.0.86=mac-address=F8:3F:51:7F:C8:07=login-by=cookie=uptime=00:28:17=keepalive-timeout=00:02:00=radius=false")
STR.Add("!re=.id=*BC00000A=server=hotspot1=user=0=address=10.0.0.188=mac-address=EC:51:BC:24:E4:59=login-by=cookie=uptime=00:33:00=keepalive-timeout=00:02:00=radius=false")
STR.Add("!re=.id=*FE00000A=server=hotspot1=user=3=address=10.0.0.254=mac-address=98:0C:A5:05:A2:3F=login-by=http-chap=uptime=00:42:39=keepalive-timeout=00:02:00=radius=false")
For Each ROW In STR
Dim id As String = Regex.Match(ROW, "(?<=id=).+?(?=\=|$)").Value
Dim server As String = Regex.Match(ROW, "(?<=server=).+?(?==|$)").Value
Dim user As String = Regex.Match(ROW, "(?<=user=).+?(?==|$)").Value
Dim address As String = Regex.Match(ROW, "(?<=address=).+?(?==|$)").Value
Dim mac_address As String = Regex.Match(ROW, "(?<=mac-address=).+?(?==|$)").Value
Dim login_by As String = Regex.Match(ROW, "(?<=login-by=).+?(?==|$)").Value
Dim uptime As String = Regex.Match(ROW, "(?<=uptime=).+?(?==|$)").Value
Dim keepalive_timeout As String = Regex.Match(ROW, "(?<=keepalive-timeout=).+?(?==|$)").Value
Dim radius As String = Regex.Match(ROW, "(?<=radius=).+?(?==|$)").Value
DGV1.Rows.Add(id, server, user, address, mac_address, login_by, uptime, keepalive_timeout, radius)
Next
End Sub
End Class
تمام بس برضو فى مشكلة عشان هو بيعمل اتصال للسيرفر عن طريق تسجيل دخول من الكود ده وبشكر حضرتك على مجهودك
كود :
Dim IPAddress As System.Net.IPAddress = System.Net.IPAddress.Parse(ip.Text)
Dim mk = New Mikrotik(IPAddress)
If Not mk.Login(user.Text, pass.Text) Then
Console.WriteLine("Cant log in")
mk.Close()
Console.ReadLine()
Return
End Ifبعد ما يعمل اتصال بيقوم بارسال او اتصال الرابط يجيب الى شغلين الان بس انا عايز بعد ما يتم الاتصال بالسيرفر يقوم بالاتصال بالرابط ويجلب البيانات زاى ما خضرتك عملت كدة
كود :
mk.Send("/ip/hotspot/active/print", False)