Murray, Thank you!
Thanks for all the replies. I did get my script working by
verifying the user name field from the utwho output first. If I
couldn't find the prefix of my kiosk account then adjust my array index
accordingly.
But this script is what I think I'm looking for, thanks for this sample
Code! I don't think I need to worry about overloading the utauthd, as
this script wouldn't be called at a kiosk session start up but only when
a user sits down and selects what desktop environment they want to work in.
On 8/2/10 8:38 PM, Murray Fraser wrote:
#!/usr/bin/perl
my $line;
my $key;
my $value;
my $ipaddr;
my $token;
my $mytoken = $ENV{SUN_SUNRAY_TOKEN};
open (UTNETPIPE, "echo 'status'|/etc/opt/SUNWut/basedir/lib/utnetpipe
0.0.0.0 7010 |");
while(<UTNETPIPE>) {
chomp;
$line = $_;
if ($line eq "end"&& $token eq $mytoken) {
printf "My token: $token\n";
printf "My IP: $ipaddr\n";
break;
}
($key, $value) = split('=', $line, 2);
if ($key eq "terminalIPA") { $ipaddr = $value };
if ($key eq "tokenName") { $token = $value };
}
On Tue, Aug 3, 2010 at 11:40 AM, Murray Fraser<msfra...@gmail.com> wrote:
utwho is a script as well, have a read of /opt/SUNWut/bin/utwho
essentially, if you open a tcp socket to port 7010, and send 'status',
you will get all the information you need, and a lot more.
You can use perl to put it all together (each record is between a
'begin' and 'end' line). I think you want the 'terminalIPA' line for
the ip address, and 'connected=true' for connected.
On Tue, Aug 3, 2010 at 1:21 AM, CJ Keist<cj.ke...@colostate.edu> wrote:
I'm currently trying to figure out the correct IP address for the DTU using
the following perl script:
#!/usr/bin/perl
my $line;
my @array;
my $ip;
my $junk;
my $user = $ENV{USER};
open(WHO, "/opt/SUNWut/bin/utwho -c|");
open(LOG, ">>/tmp/log.txt");
while (<WHO>) {
$line = $_;
@array = split (' +\s', $line, 5);
print LOG "User: $user $array[1]\n";
if ($user eq $array[1]) {
($ip, $junk) = split(' ', $array[2], 2);
print LOG "IP: $ip\n";
if ($ip =~ "192.168") {
system("/opt/SUNWut/bin/utswitch -h 192.168.100.12");
}
else {
system("/opt/SUNWut/bin/utswitch -h
sunfire5.engr.colostate.edu");
}
break;
}
}
close(WHO);
close(LOG);
The problem I'm running into is the case with the following two utwho -c out
lines:
2.0 pseudo.00144f946d3e engr85 192.168.102.208
P8-FS.00144f946d3e
10.0 pseudo.00144fd18d32 engr48 129.82.229.249
P8-FS.00144fd18d32
The space in the beginning of the first utwho output is throwing my whole
split return in the dumps. Just wonder if there is a better way in getting
the IP of the DTU you are on when running in kiosk mode? Is the an
environment variable set for the IP of the DTU?
--
C. J. Keist Email: cj.ke...@colostate.edu
UNIX/Network Manager Phone: 970-491-0630
Engineering Network Services Fax: 970-491-5569
College of Engineering, CSU
Ft. Collins, CO 80523-1301
All I want is a chance to prove 'Money can't buy happiness'
_______________________________________________
SunRay-Users mailing list
SunRay-Users@filibeto.org
http://www.filibeto.org/mailman/listinfo/sunray-users
_______________________________________________
SunRay-Users mailing list
SunRay-Users@filibeto.org
http://www.filibeto.org/mailman/listinfo/sunray-users
--
C. J. Keist Email: cj.ke...@colostate.edu
UNIX/Network Manager Phone: 970-491-0630
Engineering Network Services Fax: 970-491-5569
College of Engineering, CSU
Ft. Collins, CO 80523-1301
All I want is a chance to prove 'Money can't buy happiness'
_______________________________________________
SunRay-Users mailing list
SunRay-Users@filibeto.org
http://www.filibeto.org/mailman/listinfo/sunray-users