تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] اريد تغير بسيط ع الكود ...
#1
بسم الله الرحمان الرحيم
اريد تغير الكود برنامج عبارة عن تغير بروكسي المتصفح ولكن اريدة تغيرة لتغير ايبي الجهاز كلة وليس بروكسي المتصفح

الكود

PHP كود :
Imports System.Runtime.InteropServices
Imports System

Public Class Class1
    Public Enum Options
        INTERNET_PER_CONN_FLAGS 
1
        INTERNET_PER_CONN_PROXY_SERVER 
2
        INTERNET_PER_CONN_PROXY_BYPASS 
3
        INTERNET_PER_CONN_AUTOCONFIG_URL 
4
        INTERNET_PER_CONN_AUTODISCOVERY_FLAGS 
5
        INTERNET_OPTION_REFRESH 
37
        INTERNET_OPTION_PER_CONNECTION_OPTION 
75
        INTERNET_OPTION_SETTINGS_CHANGED 
39
        PROXY_TYPE_PROXY 
= &H2
        PROXY_TYPE_DIRECT 
= &H1
    End Enum

    
<StructLayout(LayoutKind.Sequential)> _
    Private 
Class FILETIME
        Public dwLowDateTime 
As Integer
        Public dwHighDateTime 
As Integer
    End 
Class

 
   <StructLayout(LayoutKind.ExplicitSize:=12)> _
    Private Structure INTERNET_PER_CONN_OPTION
        
<FieldOffset(0)> Dim dwOption As Integer
        
<FieldOffset(4)> Dim dwValue As Integer
        
<FieldOffset(4)> Dim pszValue As IntPtr
        
<FieldOffset(4)> Dim ftValue As IntPtr

        Public 
Function GetBytes() As Byte()
 
           Dim b(12) As Byte
            BitConverter
.GetBytes(dwOption).CopyTo(b0)
 
           Select Case dwOption
                Case Options
.INTERNET_PER_CONN_FLAGS
                    BitConverter
.GetBytes(dwValue).CopyTo(b4)
 
               Case Options.INTERNET_PER_CONN_PROXY_BYPASS
                    BitConverter
.GetBytes(pszValue.ToInt32()).CopyTo(b4)
 
               Case Options.INTERNET_PER_CONN_PROXY_SERVER
                    BitConverter
.GetBytes(pszValue.ToInt32()).CopyTo(b4)
 
           End Select
            Return b
        End 
Function
 
   End Structure

    
<StructLayout(LayoutKind.SequentialCharSet:=CharSet.Auto)> _
    Private 
Class INTERNET_PER_CONN_OPTION_LIST
        Public dwSize 
As Integer
        Public pszConnection 
As String
        Public dwOptionCount 
As Integer
        Public dwOptionError 
As Integer
        Public pOptions 
As IntPtr
    End 
Class

 
   <StructLayout(LayoutKind.Sequential)> _
    Private 
Class INTERNET_PROXY_INFO
        Public dwAccessType 
As Integer
        Public lpszProxy 
As IntPtr
        Public lpszProxyBypass 
As IntPtr
    End 
Class

 
   Private Const ERROR_INSUFFICIENT_BUFFER 122
    Private 
Const INTERNET_OPTION_PROXY 38
    Private 
Const INTERNET_OPEN_TYPE_DIRECT 1

    
<DllImport("wininet.dll")> _
    Private Shared 
Function InternetSetOption(ByVal hInternet As IntPtr_
             ByVal dwOption 
As Integer_
             ByVal lpBuffer 
As INTERNET_PER_CONN_OPTION_LIST_
             ByVal dwBufferLength 
As Integer) As Boolean
    End 
Function

 
   <DllImport("kernel32.dll")> _
    Private Shared 
Function GetLastError() As Integer
    End 
Function

 
   Public Function SetProxy(ByVal proxy_full_addr As String) As Boolean
        Dim bReturn 
As Boolean
        Dim 
list As New INTERNET_PER_CONN_OPTION_LIST
        Dim dwBufSize 
As Integer Marshal.SizeOf(list)
 
       Dim opts(3) As INTERNET_PER_CONN_OPTION
        Dim opt_size 
As Integer Marshal.SizeOf(opts(0))

 
       list.dwSize dwBufSize
        list
.pszConnection ControlChars.NullChar
        list
.dwOptionCount 3

        
'set flags
        opts(0).dwOption = Options.INTERNET_PER_CONN_FLAGS
        opts(0).dwValue = Options.PROXY_TYPE_DIRECT Or Options.PROXY_TYPE_PROXY

        '
set proxyname
        opts
(1).dwOption Options.INTERNET_PER_CONN_PROXY_SERVER
        opts
(1).pszValue Marshal.StringToHGlobalAnsi(proxy_full_addr)

 
       'set override
        opts(2).dwOption = Options.INTERNET_PER_CONN_PROXY_BYPASS
        opts(2).pszValue = Marshal.StringToHGlobalAnsi("local")

        Dim b(3 * opt_size) As Byte
        opts(0).GetBytes().CopyTo(b, 0)
        opts(1).GetBytes().CopyTo(b, opt_size)
        opts(2).GetBytes().CopyTo(b, 2 * opt_size)

        Dim ptr As IntPtr = Marshal.AllocCoTaskMem(3 * opt_size)
        Marshal.Copy(b, 0, ptr, 3 * opt_size)

        list.pOptions = ptr
        '
Set the options on the connection
        bReturn 
InternetSetOption(IntPtr.ZeroOptions.INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize)
 
       If Not bReturn Then
            Debug
.WriteLine(GetLastError)
 
       End If

 
       'Notify existing Internet Explorer instances that the settings have changed
        bReturn = InternetSetOption(IntPtr.Zero, Options.INTERNET_OPTION_SETTINGS_CHANGED, Nothing, 0)
        If Not bReturn Then
            Debug.WriteLine(GetLastError)
        End If

        '
Flush the current IE proxy setting
        bReturn 
InternetSetOption(IntPtr.ZeroOptions.INTERNET_OPTION_REFRESHNothing0)
 
       If Not bReturn Then
            Debug
.WriteLine(GetLastError)
 
       End If

 
       Marshal.FreeHGlobal(opts(1).pszValue)
 
       Marshal.FreeHGlobal(opts(2).pszValue)
 
       Marshal.FreeCoTaskMem(ptr)
 
       Return bReturn
    End 
Function

 
   Public Function DisableProxy() As Boolean
        Dim bReturn 
As Boolean
        Dim 
list As New INTERNET_PER_CONN_OPTION_LIST
        Dim dwBufSize 
As Integer Marshal.SizeOf(list)
 
       Dim opts(0) As INTERNET_PER_CONN_OPTION
        Dim opt_size 
As Integer Marshal.SizeOf(opts(0))

 
       list.dwSize dwBufSize
        list
.pszConnection ControlChars.NullChar
        list
.dwOptionCount 1

        opts
(0).dwOption Options.INTERNET_PER_CONN_FLAGS
        opts
(0).dwValue Options.PROXY_TYPE_DIRECT

        Dim b
(opt_size) As Byte
        opts
(0).GetBytes().CopyTo(b0)

 
       Dim ptr As IntPtr Marshal.AllocCoTaskMem(opt_size)
 
       Marshal.Copy(b0ptropt_size)

 
       list.pOptions ptr
        
'Set the options on the connection
        bReturn = InternetSetOption(IntPtr.Zero, Options.INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize)
        If Not bReturn Then
            Debug.WriteLine(GetLastError)
        End If

        '
Notify existing Internet Explorer instances that the settings have changed
        bReturn 
InternetSetOption(IntPtr.ZeroOptions.INTERNET_OPTION_SETTINGS_CHANGEDNothing0)
 
       If Not bReturn Then
            Debug
.WriteLine(GetLastError)
 
       End If

 
       'Flush the current IE proxy setting
        bReturn = InternetSetOption(IntPtr.Zero, Options.INTERNET_OPTION_REFRESH, Nothing, 0)
        If Not bReturn Then
            Debug.WriteLine(GetLastError)
        End If

        Marshal.FreeCoTaskMem(ptr)
        Return bReturn
    End Function
End Class 
PHP كود :
Dim clsProxy As New Class1
        If clsProxy
.SetProxy(HuraTextBox1.TextThen
            MessageBox
.Show("Proxy successfully enabled.""Success"MessageBoxButtons.OKMessageBoxIcon.Information)
 
       Else
            MessageBox
.Show("Error enabling proxy.""Failed"MessageBoxButtons.OKMessageBoxIcon.Exclamation)
 
       End If 
PHP كود :
Dim clsProxy As New Class1
        If clsProxy
.DisableProxy Then
            MessageBox
.Show("Proxy successfully disabled.""Success"MessageBoxButtons.OKMessageBoxIcon.Information)
 
       Else
            MessageBox
.Show("Error disabling proxy.""Failed"MessageBoxButtons.OKMessageBoxIcon.Exclamation)
 
       End If 
الرد }}}
تم الشكر بواسطة:
#2
ابحث عن 
How to Configure network settings programmatically


   

لا أعرف كيف تتم ولكن أعلم أنها من تتحكم في كل Requset يخرج من الجهاز إلى الإنترنت
أي أن إعدادات البروكسي ستكون عامة على الجهاز وليس المتصفح
كما في الـ VPN
الرد }}}
تم الشكر بواسطة: elgokr
#3
مرحباً اخى e-coder

فى البداية هل تقصد بفكر تغيير اى بى الجهاز
بحيث ان يكون رؤية الجهاز على شبكة الانترت العامة وليست الداخلية
باى بى مختلف عن الاى بى الخاص بك اذا كان نعم

فهنا الكود الذى لديك هو الكود الصحيح
لان لو نقول ان جهازك يحصل على اى بى 192.168.1.102 مثلاً
فالاى بى ده هو عبارة عن اى بى داخلى اى داخل الشبكة المتصلة بالروتر فقط

لكن ما يظهر بين العامة هو الاى بى الخاص بالروتر المزود من خدمة الانترنت
فلو الروتر حصل على اى بى مثلاً 5.64.221.143
فالاى بى ده هو يعنى انت واخوك و... الخ من يستخدم الانترنت على نفس الراوتر


طيب لو كان الامر المطلوب هو تغيير الاى بى للجهاز بحيث الرؤية داخل الشبكة
فمثلاً جهازك يحمل اى بى 192.168.1.102 وتريد تغييره الى 192.168.1.110 مثلاً

لديك طريقتين الطريقة الاولى من خلال الرابط التالى وهو استخدام الكود بهذا الرد

طيب لو كان الامر بحاجة لكود بسيط وسهل
يمكنك تنفيذ الامر من خلال كود Netsh الذى ينفذ فى Command
ومن خلال تنفيذ التالى

لاتمام الاى بى يدوى مع ادخال الاى بى الذى يناسبك
كود :
Process.Start("netsh interface ip set address "؟؟؟؟؟" static 192.168.1.110 255.255.255.0 192.168.1.1 1")

مكان علامة ؟؟؟؟ سيتم وضع اسم Ethernet حيب السم الذى لديك انظر للصورة الخاصة بالاخ 
عبدالله الدوسري فى الرد الخاص به لتوضح الصورة كاملاً

طيب الان لو حابب تعمل زر اخر يقوم بجعل الجهاز باخذ اى بى تلقائي
كل ما عليك استخدام السطر التالى
كود :
System.Diagonistic.Process.Start("netsh interface ip set address "؟؟؟؟" dhcp")

مع تغيير علامة ؟؟؟؟ كما تم شرحه بالاعلى

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:
#4
(29-09-18, 02:33 AM)e-coder كتب :
بسم الله الرحمان الرحيم
اريد تغير الكود برنامج عبارة عن تغير بروكسي المتصفح ولكن اريدة تغيرة لتغير ايبي الجهاز كلة وليس بروكسي المتصفح

الكود

يمكن تكود قصدك الي بالموضوع هذا
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد اضافة حفظ PDF فى مسار على الهارد- مثال الاستاذ عبدالله الدوسري new_programer 0 53 13-04-24, 12:59 PM
آخر رد: new_programer
  ممكن حل المشكلة فى الكود التالي - من مشاركة استاذنا القدير / عبدالله الدوسري new_programer 4 178 02-03-24, 07:36 PM
آخر رد: new_programer
  ماهو حل هذا الخطأ في الكود melad2002 7 276 25-02-24, 12:25 AM
آخر رد: justforit
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 216 20-02-24, 12:00 AM
آخر رد: Kamil
  [VB.NET] أرغب فى استخدام هذا الكود بالتحديد على الإصدار 10 AmeenRashed 3 212 19-01-24, 12:42 PM
آخر رد: Taha Okla
  اريد طباعة الباركود المحدد فقط مع الكمية new_programer 5 450 09-01-24, 08:40 PM
آخر رد: new_programer
  سؤال بسيط يا احبتى فى الله خالد كامل1 4 319 07-01-24, 12:55 AM
آخر رد: Mujahef
  اريد مساعدة في العملية الحسابية melad2002 3 426 29-12-23, 09:10 PM
آخر رد: melad2002
  [VB.NET] ما الخطأ فى هذا الكود - كود البحث المتعدد Ashraf Elafify 7 478 27-12-23, 10:50 PM
آخر رد: Ashraf Elafify
  [كود] اريد كود إرسال البيانات من الفيجوال بيسك إلىPDF issamsaidd 10 5,866 25-12-23, 06:30 PM
آخر رد: الحزين اليماني

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم