Pour obtenir les adresses IP d'un ordinateur on utilise la fonction Resolve de la Classe System.Net.Dns
Voici une petite fonction qui le fait. Pour avoir les adresses IP de l'ordinateur local il suffit de l'appeler sans paramètre.
Imports System.Net
Function GetIPaddresses(OptionalByVal computername AsString = "localhost") AsString()
Dim saddr() AsStringDim addr() As IPAddress = Dns.Resolve(computername).AddressList()
Dim i AsIntegerIf addr.Length > 0 Then
saddr = NewString(addr.Length - 1) {}
For i = 0 To addr.Length - 1
saddr(i) = addr(i).ToString
NextEndIfReturn saddr
EndFunction
Il faut ajouter à son projet la référence System.Web.Mail (qui aurait dû s'appeler System.Net.Mail à mon avis).
Ensuite ça se fait tout seul. Exemple:
SharedSub Main(ByVal args AsString())
Dim msg As MailMessage = New MailMessage
msg.From = "expediteur@free.f"
msg.To = "atoi@free.fr;alui@free.fr"
msg.Cc = "encoreatoi@free.fr"
msg.Body = "Bonjour" & Convert.ToChar(10) & "" + "Ceci est le contenu du mail" & Convert.ToChar(10) & "" + "A bientôt"
msg.Attachments.Add(New MailAttachment("c:\fichierjoint.txt", MailEncoding.UUEncode))
SmtpMail.SmtpServer = "smtp.nerim.fr"
SmtpMail.Send(msg)
EndSub
J'attire votre attention sur un point : Les exceptions levées par la fonction SmtpMail.Send en cas d'échec, ne sont pas toujours très explicites!!
N'hésiter pas à consulter MSDN sur la classe System.Web.Mail.MailMessage. Elle dispose de nombreuses autres propriétés.
Il y a aussi l'excellent article de Webman
On utilise les classes HttpWebRequest, HttpWebResponse qui encapsulent la communication socket du protocole HTTP.
On utilise ensuite la classe StreamReader pour lire le flux de la réponse
Namespaces à utiliser
Imports System.Net
Imports System.IO
Le code suivant utilise une Form avec un contrôle TexBox nommé textBox1, un contrôle RichTextBox nommé richTextBox1 et un contrôle Button nommé button1.
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Dim HttpWResponse As HttpWebResponse = NothingDim sr As StreamReader = NothingTryDim HttpWRequest As HttpWebRequest = CType(WebRequest.Create(textBox1.Text), HttpWebRequest)
HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse)
sr = New StreamReader(HttpWResponse.GetResponseStream)
richTextBox1.Text = sr.ReadToEnd
Catch ex As Exception
MessageBox.Show(ex.Message)
FinallyIfNot (HttpWResponse IsNothing) Then
HttpWResponse.Close
EndIfIfNot (sr IsNothing) Then
sr.Close
EndIfEndTryEndSub
On se sert de la fonction InternetGetConnectedState de la dll win32 wininet.dll
using System.Runtime.InteropServices;
' Déclaration de l'APIPrivateDeclareFunction InternetGetConnectedState Lib"wininet.dll" ( _
ByRef lpdwFlags AsInteger, _
ByVal dwReserved AsInteger) AsBoolean' Utilisation de l'API
public Function IsConnected() as Boolean
{
Dim Desc AsInteger
return InternetGetConnectedState(Desc, 0)
}