DedSec Project

Visual_Basic_NET — Αναλυτικός οδηγός εξάσκησης — DedSec Project

VB.NET — μετατροπή αριθμού θύρας και έλεγχος ορίων Συνάρτηση σε .NET console project Με συμβατό SDK αναμένεται 8080. Η Integer.TryParse ελέγχει αν το κείμενο είναι ακέραιος, αλλά μόνο οι…

VB.NET — μετατροπή αριθμού θύρας και έλεγχος ορίων

Συνάρτηση σε .NET console project

Imports System
Module Program
    Function ParsePort(text As String) As Integer
        Dim value As Integer
        If Not Integer.TryParse(text, value) OrElse value < 1 OrElse value > 65535 Then
            Throw New ArgumentException("invalid port")
        End If
        Return value
    End Function
    Sub Main()
        Console.WriteLine(ParsePort("8080"))
    End Sub
End Module

Με συμβατό SDK αναμένεται 8080. Η Integer.TryParse ελέγχει αν το κείμενο είναι ακέραιος, αλλά μόνο οι επόμενες συγκρίσεις ελέγχουν τα όρια θύρας 1–65535. Η OrElse είναι συντομοκυκλωτική λογική συνθήκη.

Δοκιμές απόρριψης

Έλεγξε "", "abc", "0", "-1", "65536" και "65535". Οι πέντε πρώτες πρέπει να προκαλούν ArgumentException και η τελευταία να γίνεται δεκτή. Μη χρησιμοποιείς Val σε μη έμπιστο κείμενο γιατί μπορεί να δεχτεί πρόθεμα και να αγνοήσει άκυρο suffix.

Στατικό και δυναμικό σφάλμα

Επέστρεψε προσωρινά String από συνάρτηση Integer και παρατήρησε το diagnostic του compiler. Ξεχώρισε σφάλμα τύπου από έγκυρο ακέραιο που απορρίπτει ο επιχειρησιακός κανόνας. Σημείωσε dotnet --info και πραγματικά αποτελέσματα· δεν δηλώνεται .NET build εδώ.

Ξεχώρισε parsing από επιχειρησιακό συμβόλαιο

Η TryParse εφαρμόζει κανόνες αριθμητικής μετατροπής που εξαρτώνται και από overload ή culture. Σε εξωτερικό πρωτόκολλο, αντί για φόρμα ανθρώπου, όρισε ρητά επιτρεπτό ύφος αριθμών και κουλτούρα. Δοκίμασε " 8080 ", "+8080", "08080" και ένα μη ASCII ψηφίο: μπορεί να είναι αριθμητικά αναγνωρίσιμες περιπτώσεις αλλά όχι αποδεκτές σύμφωνα με τον κανόνα του συστήματος. Ξεχώρισε τη σωστή σύνταξη μιας θύρας από το δικαίωμα σύνδεσης προς συγκεκριμένη διεύθυνση: η τιμή 443 δεν δίνει αυτόματα άδεια χρήσης ενός endpoint. Έλεγξε άκρα 1 και 65535 και κατέγραψε .NET target framework και ακριβή parser overload.