Adresse IP clients

Bonjour,



Je reviens à la charge avec mes questions ;D

Désolé du temps d’attente mais des collègues ont essayé de monter une plateforme de test…En vain.



En fait, je ne sais toujours pas si il est possible de faire en sorte que l’IP des clients soient toujours la même ?



On pense réussir à récuperer les IP qui sont dans une variable grâce aux scripts que vous m’avez donné, mais si l’IP change…SNIF, l’application ne fonctionnera pas correctement.



D’avance merci…

Et tu ne peux pas avoir un table (sql,xml,ini,…) ou tu stockerais en dure des IP bidon ?

par exemple un fichier ini sous la forme username=IP



en batch tu récupere la variable %username% et avec cette valeur tu retrouve l’@ IP a placer dans ton url, facil non ?

Concernant la création d’une table où on stocke des IP, c’est faisable, mais en fait, je ne vois pas l’utilité de cette fonction…

Désolé je ne suis pas développeur donc je n’ai pas un très bon sens analytique :-[

Car chaque poste dans un établissement doit avoir une IP fixe. Ensuite dans notre application on rentre “en dur” les IP des postes qui ont le droit de se connecter et en même temps ont leurs donne des droits.



A noter que la version de Citrix utiliser est MetaFrame 1.8. D’après ce que j’ai compris la virtualisation des adresses n’est disponible qu’à partir de Présentation Server 4.0 ? Mais comment ce faisait l’attribution des IP avant ?



De plus, j’ai cru entendre qu’il était possible, lors de l’installation d’un nouveau client, de lui donner une IP Fixe. En fait cela dépend si c’est un “vrai” client léger ou un client léger qui dispose quand même de ses propres ressources…Désolé je m’éxprime mal!! Mais c’est cela ou j’ai tout faux ?


en batch tu récupere la variable %username% et avec cette valeur tu retrouve l'@ IP a placer dans ton url, facil non ?

J'y ai pensé hier. Je sais qu'on peut récuperer l'IP du poste client via un batch, et je pense qu'il est tout à fait faisable de l'insérer dans l'URL voir dans une table de la BDD.

En tout cas merci
"brandtance" wrote:
A noter que la version de Citrix utiliser est MetaFrame 1.8. D'après ce que j'ai compris la virtualisation des adresses n'est disponible qu'à partir de Présentation Server 4.0 ? Mais comment ce faisait l'attribution des IP avant ?

là je suis Out.. je n'ai plus le droit de répondre à des questions sur cette version ;D

une session ICA n'a JAMAIS eu d'IP spécifique avant CPS4.0. Si un programme qui tournait dans la session ICA voulait récupérer l'adresse IP du client (client pour cette application signifiant la machine sur laquelle il est lancé, donc le serveur) il récupérait l'IP du serveur.
peu de programmes savaient précisément quand ils tournaient en session ICA et donc utiliser les possibilités du SDK Citrix pour récupérer l'adresse IP cliente (ou alors le SDK de TS). n'oublie pas que MF1.8 est la pré-histoire au niveau fonctionnalités

hors sujet : et dire que Longhorn est du MF1.8 justement avec quelques petits plus allez un MF1.9 :angel: je sors....
"ThinIsFat" wrote:
là je suis Out.. je n'ai plus le droit de répondre à des questions sur cette version ;D

une session ICA n'a JAMAIS eu d'IP spécifique avant CPS4.0. Si un programme qui tournait dans la session ICA voulait récupérer l'adresse IP du client (client pour cette application signifiant la machine sur laquelle il est lancé, donc le serveur) il récupérait l'IP du serveur.
peu de programmes savaient précisément quand ils tournaient en session ICA et donc utiliser les possibilités du SDK Citrix pour récupérer l'adresse IP cliente (ou alors le SDK de TS). n'oublie pas que MF1.8 est la pré-histoire au niveau fonctionnalités

hors sujet : et dire que Longhorn est du MF1.8 justement avec quelques petits plus allez un MF1.9 :angel: je sors....

Donc, pour résumer, MetaFrame 1.8 utilise un client ICA qui est le protocole Citrix, c'est ça ? Ensuite, si j'ai bien compris, un client ICA, n'a pas d'adresse IP (ça me fait bizarre d'entendre que un hôte sur un réseau n'a pas d'IP) ??
Et donc pour finir, il m'est impossible donc de trouver une solution avec une version MetaFrame 1.8 ? Car seul le serveur à une IP, c'est ça ?

En tout cas merci!!!!
"brandtance" wrote:
Donc, pour résumer, MetaFrame 1.8 utilise un client ICA qui est le protocole Citrix, c'est ça ?
oui, c'est la même chose depuis WinFrame et sous MF XP, CPS etc. le client ICA permet à n'importe quelle machine (PDA, thinclient, laptop etc) sous n'importe quel OS d'ouvrir une session Windows sur un serveur Citrix VIA le protocole "d'affichage" ICA.
"brandtance" wrote:
Ensuite, si j'ai bien compris, un client ICA, n'a pas d'adresse IP (ça me fait bizarre d'entendre que un hôte sur un réseau n'a pas d'IP) ??
ce n'est pas le client ICA qui n'a pas d'IP c'est la SESSION ICA. la session ICA est l'espace mémoire sur le serveur Citrix (sous Windows OU Unix) qui héberge les applications lancées par l'utilisateur via le client ICA. il est évident que la machine cliente (qui a le client ICA) possède au moins une adresse IP (ou IPX ou netbui ou ..... tant que l'on n'est pas sous Win2003+)
"brandtance" wrote:
Et donc pour finir, il m'est impossible donc de trouver une solution avec une version MetaFrame 1.8 ? Car seul le serveur à une IP, c'est ça ?
le serveur a une IP et c'est celle ci qui sera vue par l'application SAUF si tu explique à l'application comment faire => CPS4.0 OU modifier l'application


bonne chance !!

Ok, sans être un bon analyste ::slight_smile: essaie d’imaginer ce scénario:

un fichier ini contenant les login de tes utilisateurs associé a un adresse ip bidon. Cette IP n’est pas celle de leur pc, ni du server et encore moins un ip virtuel donnée par Metaframe. C’est uniquement un ip que tu utilise dans ta conf pour gérer les droits.

ex iplist.ini:


stagiaire10=10.0.0.12
cbosi=10.0.0.45
cbraconnier=10.0.0.145
sduville=10.0.0.23
jbouchoux=10.0.0.98
craymond=10.0.0.75


Via Metaframe tu publie un script batch en lieu et place de ton application. Tu peux bien sur utiliser un utilitaire comme runhidden (voir page téléchargement de mon site) pour cacher ce batch a l'écran.
tu appel ce script sous la forme "x:lechemin du scripiplist.cmd %USERNAME%
ex iplist.cmd:

@echo off
for /f "tokens=2 skip=2 delims==" %%i in ('find /I "%1=" iplist.ini') do "C:Program FilesInternet ExplorerIEXPLORE.EXE" http://MonServeur/MonSite/MaPage.asp?ip=%%i



et la guerre est fini 8)

Merci maître :wink:


ce n'est pas le client ICA qui n'a pas d'IP c'est la SESSION ICA. la session ICA est l'espace mémoire sur le serveur Citrix (sous Windows OU Unix) qui héberge les applications lancées par l'utilisateur via le client ICA. il est évident que la machine cliente (qui a le client ICA) possède au moins une adresse IP (ou IPX ou netbui ou ..... tant que l'on n'est pas sous Win2003+)

Pour être sûr d'avoir bien compris : l'IP du client sert juste au niveau du réseau! Et lors de la session ICA n'a plus aucune utilité! Et donc même si j'utilise un batch pour récuperer l'IP du client, je n'aurais pas le résultat voulu, c'est cela ?

le serveur a une IP et c'est celle ci qui sera vue par l'application SAUF si tu explique à l'application comment faire => CPS4.0 OU modifier l'application

Et sous CPS4, tu peux faire comment ?
Modifier l'application.....hihihihi, tendu!!!! ;D ;D ;D

Merci Chavers, je vais étudier cette possibilité!!!
"brandtance" wrote:
ce n'est pas le client ICA qui n'a pas d'IP c'est la SESSION ICA. la session ICA est l'espace mémoire sur le serveur Citrix (sous Windows OU Unix) qui héberge les applications lancées par l'utilisateur via le client ICA. il est évident que la machine cliente (qui a le client ICA) possède au moins une adresse IP (ou IPX ou netbui ou ..... tant que l'on n'est pas sous Win2003+)

Pour être sûr d'avoir bien compris : l'IP du client sert juste au niveau du réseau! Et lors de la session ICA n'a plus aucune utilité! Et donc même si j'utilise un batch pour récuperer l'IP du client, je n'aurais pas le résultat voulu, c'est cela ?

l'IP du client est indispensable pour la communication entre le client et le serveur (comme toujours). dans la session ICA, je veux dire au sein de cette session, tout se passe sur le serveur donc l'ip de la machine cliente n'est pas utilisée et les applications tournant dans cette session voient donc l'ip du serveur citrix
"brandtance" wrote:
le serveur a une IP et c'est celle ci qui sera vue par l'application SAUF si tu explique à l'application comment faire => CPS4.0 OU modifier l'application

Et sous CPS4, tu peux faire comment ?
Modifier l'application.....hihihihi, tendu!!!! ;D ;D ;D
sous CPS4, il faut spécifier une plage d'adresse IP dans la console Citrix (qui sont sur le même sous réseau que ton serveur) et ensuite indiquer les process (iexplore.exe, notepad.exe, getip.exe, monexe.exe, moncom.com etc) pour lesquels CPS va surveiller les appels aux API Winsock et les intercepter pour donner l'IP "virtuelle" comme réponse au lieu de l'IP réelle du serveur Citrix. les API surveillées sont Bind¸closesocket¸connect, WSAConnect, WSAAccept, getpeername, getsockname, sendto, WSASendTo, WSASocketW, gethostbyname, gethostbyaddr, getnameinfo, getaddrinfo tout autre appel à une API Winsock ne sera pas capturé.
http://support.citrix.com/article/CTX111898 => Troubleshooting VIP qui te donnera toutes les explications techniques sur le fonctionnement
"ThinIsFat" wrote:
hors sujet : et dire que Longhorn est du MF1.8 justement avec quelques petits plus allez un MF1.9 :angel: je sors....

Hors sujet aussi: C'est pas faux... ;D Le pire, ce que quand tu lis les livres blancs de Microsoft, tu as un peu l'impression de monter une usine à gaz, là ou chez Citrix c'était "presque" intuitif...
l'IP du client est indispensable pour la communication entre le client et le serveur (comme toujours). dans la session ICA, je veux dire au sein de cette session, tout se passe sur le serveur donc l'ip de la machine cliente n'est pas utilisée et les applications tournant dans cette session voient donc l'ip du serveur citrix

Il n'y a donc aucun moyen de récupérer l'IP du client ? Pas un script capable de faire cela ? C'est triste quand même...

SInon merci pour toutes tes explications!

Concernant Chavert, c'est une excellente idée mais le soucis c'est que plusieurs personnes peuvent se connecter sur plusieurs postes...Donc on ne peut pas garantir le bon fonctionnement avec un fichier .ini qui donnerait :

stagiaire10=10.0.0.12
stagiaire10=10.0.0.13
stagiaire10=10.0.0.14
stagiaire10=10.0.0.15
cbosi=10.0.0.12
cbosi=10.0.0.13
cbosi=10.0.0.14
cbosi=10.0.0.15

comme je l’ai dit, il est possible de récupérer l’adresse IP du client mais pas avec les API Winsock classiques utilisées par les application "non Terminal Services aware"

il faut utiliser la fonction WTS_CLIENT_ADDRESS des API TS

http://msdn2.microsoft.com/en-us/library/aa383857.aspx

Merci,



Désolé, mais je suis vraiment newbie sur ce sujet et ça m’énerve par ailleurs de pas pouvoir me débrouiller tout seul! Je vous remercie vraiment tous de votre aide!!



DOnc en fait si j’utilise :


il faut utiliser la fonction WTS_CLIENT_ADDRESS des API TS
http://msdn2.microsoft.com/en-us/library/aa383857.asp


J'arriverais à avoir l'IP du client ? Après c'est à nous de nous débrouiller pour faire fonctionner notre appli!
J'ai juste ?
"brandtance" wrote:
Merci,

Désolé, mais je suis vraiment newbie sur ce sujet et ça m'énerve par ailleurs de pas pouvoir me débrouiller tout seul! Je vous remercie vraiment tous de votre aide!!

DOnc en fait si j'utilise :

il faut utiliser la fonction WTS_CLIENT_ADDRESS des API TS
http://msdn2.microsoft.com/en-us/library/aa383857.asp


J'arriverais à avoir l'IP du client ? Après c'est à nous de nous débrouiller pour faire fonctionner notre appli!
J'ai juste ?
Juste.

ps: c'est chaverS pas chavert ;)

Oups désolé pour l’erreur :wink:

Sinon pas d’autres possibilités ? Pourquoi ce ne serait pas possible avec une ça : http://support.citrix.com/article/CTX107574&parentCategoryID=617



Il est écrit que :

Cette procédure permet au système de retourner à une application l'adresse IP du poste client au lieu de celle du serveur lorsque l'application utilise la fonction Winsock du type gethostbyname.

Je comprends pas ça : la fonction Winsock du type gethostbyname ; c'est quoi gethostbyname ? qui execute ? ou ca se trouve....jsuis totalement perdu avec cette fonction!


MERCI
"Laurent FALGUIERE" wrote:
"ThinIsFat" wrote:
hors sujet : et dire que Longhorn est du MF1.8 justement avec quelques petits plus allez un MF1.9 :angel: je sors....

Hors sujet aussi: C'est pas faux... ;D Le pire, ce que quand tu lis les livres blancs de Microsoft, tu as un peu l'impression de monter une usine à gaz, là ou chez Citrix c'était "presque" intuitif...
Comme pour monter session directory à base de cluster 2003 entreprise MCS + NLB :-X et tout ça pour conserver les sessions deconnectées....
La où avec Citrix 2 serveurs en version advanced suffisent.

Bonjour,



Je reviens avec mes problèmes d’IP…

J’arrive grâce au script “http://ctrl-alt-del.com.au/files/ENVTSCIP.zip” de récupérer l’IP du client dans une variable. Cependant, ceci n’est qu’une petite étape que j’ai réussi grâce à vous!

Maintenant je reste bloqué sur ce fait : comment mon application fonctionnant en technologie web peut récupérer cette variable ?

Car, tous les utilisateurs utilisent le même navigateur internet (celui du serveur Citrix) et pourtant il faut tous les distinguer avec leur propre IP.



D’avance merci!!

essaye de passer la variable d’environnement contenant l’adresse ip du client dans la barre d’adresse.

http://support.citrix.com/forums/thread.jspa?forumID=2&threadID=90193&messageID=611314&start=0&#611314

Re bonjour,



ThinIsFat, je pense que c’est toi qui à posté le message sur le support Citrix:

As you posted (I guess it's you..) on an unofficial French Citrix forum, http://ctrl-alt-del.com.au/files/ENVTSCIP.zip will get you the ICA client machine IP address inside a session (the zip doesn't contain the source code but they surely use WTS_CLIENT_ADDRESS http://msdn2.microsoft.com/en-us/library/aa383857.asp)
depending on the language used for your webapplication and your web pages you should be able to retrieve that IP address and store it in a variable.
Make sure your web application doesn't use something like Request.ServerVariables(REMOTE_ADDR) to retrieve the IP but instead a variable

HTH

Frederic


En fait tu es en train de me dire qu'il ne faut pas utilisé la variable REMOTE_ADDR ? Aie Aie...on utilise justement cette variable! Existe-t-il une alternative ?
En tout cas vraiment merci de m'aider!!!!